Repository navigation
ci: run successive main commits side by side - #1498
Conversation
A shared concurrency group queued the newer push until the older one finished. Each commit on main now has its own group, so it starts at once. Other refs still cancel the older run. Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
cryos
left a comment
There was a problem hiding this comment.
Seems reasonable. FYI in a few projects we did this kind of thing before specializing to a couple of main launched YAMLs - ci.yml for merged commits and pr.yml for PRs. It let us specialize for the two major paths we supported and avoided any concurrency in ci.yml while pushing fail fast etc in PRs. Not needed right now, but worth considering for future work on CI.
|
LGTM, but is the |
A per-commit concurrency group would build two main pushes at once, and the deploy that finishes last would publish. That can replace the site with an older book. This workflow stays one group per ref. Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
|
@elibol You are right. A per-commit group would build two
|
Good catch, fixed. |
Summary
Successive pushes to
mainshare one concurrency group per workflow, so the newer run waits until the older one finishes. Each commit onmainnow has its own group and starts immediately. The previous run still finishes. Any other ref still cancels its older run.The book workflow is the exception. Its builds stay in one group per ref so a slower older commit cannot publish after a newer one and replace the site.
Changes
main, in CI, CodeQL, docs, examples, status-guard, naming-guard, and the Tile workflow.book.ymlas one group per ref. The deploy job keeps the sharedpagesgroup.cancel-in-progress: ${{ github.ref_name != 'main' }}. The SHA in the group already separates commits onmain, so this line is what states the policy in plain sight: runs onmainare not cancelled, and every other ref still cancels the older run. Removing it would leave that rule buried in the group string.Testing
Workflow configuration only. No crate, example, or guard behavior changed, so
just checkandcargo oxide runwere not run.just -f cuda-oxide/Justfile checkpasses (the local mirror of CI: fmt, clippy, tests, guards, docs)cargo oxide run <example>passes, orcuda-oxide/scripts/smoketest.sh -o '^<example>$'Checklist
git commit -s)