CI (Buildbot): As soon as a PR is created or updated, create pending (yellow) commit statuses for all Buildbot jobs #41811
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
When a PR is created or updated, this GitHub Actions workflow will create pending (yellow) commit statuses for all of the Buildbot jobs.
For example, this workflow will run when:
Motivation
Buildbot does not create the pending commit status until a job has actually started on a worker. Therefore, if a job is waiting to be scheduled, and has not yet started, Buildbot will not create a commit status for the job.
As a result, a PR may be "all green" with a message that all CI jobs are passing, but in reality, there are still some jobs that have not yet started because all of the relevant workers are busy. This can lead to PRs being accidentally merged before all of the CI jobs have finished running on that PR.
This workflow tries to prevent this situation by immediately creating pending commit statuses for all of the Buildbot jobs that will eventually be run on the PR.
Future
This problem is unique to Buildbot, because of the following two reasons:
We will not have this problem when we switch over to Buildkite. With Buildkite, there is an "overall" commit status. You can see it on this PR - it is called
buildkite/julia-master
. This commit status is created by Buildkite immediately, and it remains pending (yellow) until all of the Buildkite jobs have completed.Therefore, we will not need this workflow once we have completed our migration to Buildkite. Once the migration is complete, we will do the following:
JuliaLang/julia
repository.