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
Verify that all-jobs-succeeded
CI job depends on all other jobs
#444
Comments
This issue is in the latest This Week in Rust. I would like to help if that's OK |
Sounds good, I'll assign it to you, thanks! Let me know ow if you have any questions or run into any issues. |
I'm happy using Alternatively:
|
I've gone with using |
* [ci] check all-jobs-succeed depends on all jobs Closes #444 * [ci] Print message when check-job-dependencies fails This also changes the logic somewhat (hopefully in a way that improves readability). There was a bit of a self-check in place before that has been removed because it made the code hard to explain (too many double negatives). * [ci] Improve message for check-job-dependencies * [ci] Use less obscure line filter * [ci] Update comment to reflect change in code * [ci] Be more specific on ignoring exit status
Due to a limitation in GitHub's merge queue support, we need to manually list all jobs that are required to pass before a PR in the merge queue can be considered to have succeeded. In order to avoid having to list all jobs manually in the GitHub settings page for this repository, we instead provide the following job which depends on all other jobs:
zerocopy/.github/workflows/ci.yml
Lines 445 to 453 in 68953ed
This works, but is still error-prone: there's nothing that ensures that this job won't fall out of sync if we add new CI jobs in the future.
Similar to jobs like
check_versions
, we should write a new CI job that automatically extracts all jobs which should block a PR merging, and make sure thatall-jobs-succeed
depends on each such job.Mentoring instructions
The job should support the following behaviors:
.github
.yml
and.yaml
are possible file extensionsyq
all-jobs-succeeded
depends on each job found in the previous stepThe text was updated successfully, but these errors were encountered: