-
Notifications
You must be signed in to change notification settings - Fork 38.8k
ci: remove commit count limit from test-each-commit
#34383
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
base: master
Are you sure you want to change the base?
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste |
1a6a888 to
4640108
Compare
|
🚧 At least one of the CI tasks failed. HintsTry to run the tests locally, according to the documentation. However, a CI failure may still
Leave a comment here, if you need help tracking down a confusing failure. |
unrelated note: I think this script is missing the functional test runner More generally, I wonder if it wouldn't be easier to just run it on all commits. I guess the timeout could be raised to the max (6 hours), possibly using a cirrus runner. If a pull request doesn't finish after 6 hours on a 16 core machine, then it is probably too large and should be split up? If it isn't possible to split up, one or two reviewers can run the script locally? |
292a097 to
052728f
Compare
|
Thanks @maflcko, split the previous |
|
Ah, with "it" I meant "pull request", not "the ci task here".
Was there ever a pull request in history that wouldn't compile and test all commits in 6 hours on a modern 16 core machine? |
let's find out |
|
the leveldb and crc32 updates don't always compile, but I couldn't find any other edit: e.g. first commit of #33641 fails with |
That pull request has a single commit, so it seems impossible for it to time out. Also, if it timed-out the current CI task would time out as well. If you want to actually test this, my recommendation would be to only look at pulls with more than 6 commits. |
|
you mean that f21162d was already skipped by CI? |
The commit is both a child of a merge commit and also a subtree commit of a different repo. You can also check the behavior here https://github.com/bitcoin/bitcoin/actions/runs/21197620806/job/60976836032?pr=34363, which is another subtree bump. |
052728f to
d5964ce
Compare
test-each-commit
|
Thanks for the feedback, the latest version of the PR simply removes the 6 commit limit from |
|
This is missing a test (sample CI output). Also, when increasing the commit count to check, this should run on a larger runner, I'd say. Maybe |
d5964ce to
512b3a3
Compare
Added back the reproducer examples to the PR description.
Thanks, added this one with standard ubuntu fallback, similarly to the
It seems to me we're already doing that:
Also applied a DrahtBot LLM suggestion. |
Extend `test-each-commit` to run on every non-head pull request commit.
The PR tip is excluded because it is already covered by other CI jobs.
Runner was changed to a performant cirrus runner.
Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
512b3a3 to
22a6d89
Compare
|
lgtm ACK 22a6d89 |
Problem
test-each-commitcurrently tests only a limited number of ancestor commits in a PR, so failures introduced deeper in the commit stack might be missed.Fix
Remove the max-count limit so
test-each-commitruns the full build + unit + functional test flow on every non-head PR commit, while keeping the PR tip excluded because it is already covered by the normal CI jobs.Examples
Note: this PR has gone through a few iterations, the latest one just extends the existing job.