-
Notifications
You must be signed in to change notification settings - Fork 906
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Repro nightly builds #7651
Repro nightly builds #7651
Conversation
2c09213
to
363d190
Compare
The build failures appear to be in different place each time, and should not be related to my changes, so I assume they are inherited in CI build failures bubbling up from new changes to |
44448f0
to
e0b85c5
Compare
Some reformatting of the commands and minor syntactical optimizations. |
e0b85c5
to
84c5807
Compare
Removed modifications to the |
84c5807
to
d8d1a68
Compare
@ShahanaFarooqui Thanks for having a look! I'll address at your change requests as soon as I can, but it might take some time. As your question on testing is important, I'm leaving some preliminary feedback here so it's not wrapped up with the review comments. I've been testing failed builds using this branch, which adds an extra commit to write a line in the One interesting and potentially tricky aspect of this PR is this comment in the Dockerfiles -- that first the repo is cloned to the I'll try to reproduce your test case as well. Is it safe to say that if I |
Yes; due to commit 21fcd45, CLN v24.08.1 builds are released with |
@ShahanaFarooqui I tried to reproduce the Also, do any other test-cases which produce |
I pulled your branch
$V variable is to set verbose level (default is 0). I never used it in CLN but you can try it with
All commits without tags will only generate |
Apologies in advance for the looooooong comment.
I followed the steps you describe and replicated the results you report. The version number as computed in the
My reading of the issue description, particularly sudo docker run --rm -v $(pwd):/build ubuntu:noble \
bash -c "apt-get update && apt-get install -y debootstrap && debootstrap noble /build/noble"
sudo tar -C noble -c . | sudo docker import - noble
sudo docker build -t cl-repro-noble - < contrib/reprobuild/Dockerfile.noble
mkdir -p release
sudo docker run --rm -v $(pwd):/repo -e FORCE_MTIME=$(date +%F) -ti cl-repro-noble And then I check the name of the artifact tarball in After testing both methods:
I looked into the reason for the difference and it seems to be related to two particularities under the Docker setup:
In the work submitted so far, I've taken special care not to modify any of the Repro process scripts and tools for fear of unintended consequences. QuestionsThe below (somewhat rhetorical) questions follow from this research:
Possible Solutions
Thanks again for your help and patience on this. Let me know if I'm missing something or you have feedback on the requirements or next steps. Happy to catch you on Discord sometime to discuss as well. sidenote: I noticed the |
@s373nZ It seems there might be some misunderstanding regarding both the requirements and the approach. Let's discuss it on Discord first, and then we can update the final decision here. Are you on CLN's Discord server? |
Apologies for the confusion between a dirty tree (-modded) and the number of commits with the commit hash suffix. Each new commit increases the commit count and updates the commit hash, but it does not trigger the --dirty flag unless there are uncommitted changes in the working directory. |
Now that we agree on the difference between the commit hash and the To test I will make two additional test branches with the following changes
|
This will work only if we run poetry install first. But |
d8d1a68
to
c92145a
Compare
ae333d4
to
7ed7e09
Compare
Made a few more changes:
|
Testing@ShahanaFarooqui following from our conversations above and in Discord, here is a summary and results of the test cases:
Instructions
In summary, I am pretty happy with the testing so far. The big question is whether the new changes have discovered that |
- Locked grpcio-tools version to fix dirty tree issue. Ref: ElementsProject#7376 (comment) - Updated python version to 3.10 for future proofing - Added manual dispatch for github action
I pushed the last commit to fix the dirty tree issue on Focal by locking the Solution reference: #7376 (comment) I also updated the Python version to 3.10.0 on Focal to ensure consistency across all three distributions, making it more future-proof.
As discussed on Discord,
Yeah, testing looks really great; we have already covered some good real-world scenarios. However, my last push did not trigger the action, and I was unable to trigger it manually too. Could you please confirm once again if the Focal build passes on the master? |
ACK c7f89c3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ack c7f89c3
Repro nightly builds
Description
This pull request attempts to address #7117 to implement Github Actions CI/CD to perform nightly reproducible builds. The goal is to catch local file changes that might emerge through the build process and result in a
-modded
release version. Currently supportingfocal
,jammy
andnoble
Ubuntu releases.Have been testing by adding the following to the
on
key of.github/workflows/repro.yml
:Add adding some temporary commit to dirty the tree in the
contrib/reprobuild/Dockerfile.[release]
Related Issues
Checklist
Ensure the following tasks are completed before submitting the PR:
TODOs
have been addressed or removed.Additional Notes
master
, I've noticed @ShahanaFarooqui has made a few commits regarding the repro build process. Don't mean to be stepping on toes! I don't know if this work overlaps, and I'm hoping it still qualifies for the bounty, but if not, please consider it as an alternative submission to whatever planning around repro builds made since Aug. 2.