ci(release): a nightly for a commit main has moved past skips itself, so merges in a row build once #128

Merged
HumanBean merged 1 commit from HumanBean/Longshot:ci/nightly-skip-outdated into main 2026-11-13 05:56:50 +00:00
Owner

Why

Every merge to main queued a full nightly release, and a few merges in a row built every one of them in turn (about 10 Longshot nightlies were queued at once on 2026-11-13). Only the newest one matters.

What changed

  • .forgejo/workflows/release.yml: on a push, The version compares the run's commit with origin/main. If main has moved on, it notes that and gives no tag; linux, windows and publish then skip (if: needs.version.outputs.tag != '').
  • The concurrency group is unchanged (release-<ref>, cancel-in-progress: false): Forgejo still runs one release at a time and queues the rest, so the nightly already running is never cancelled; a queued one that has become outdated finishes in seconds when its turn comes. Forgejo 17 has no "cancel only the queued runs" mode (only queue, or cancel everything including the running one).
  • Tags (rc, stable) and runs by hand are not affected.

Flags and settings

None

Measurements

main: 341d63a4 (2026-11-13)
this PR: ci/nightly-skip-outdated @ e2cb389f

main @ 341d63a4 this PR @ e2cb389f
nightlies built for 3 merges in a row 3 full builds, one after another 1 full build (the newest), 2 skipped in seconds

(From the workflow's logic; main's next merges will show it.)

Testing

Tested: actionlint (no new findings), and the tests that read the workflows.

Not tested: a run on the runner; the next merges to main will show it.

Needs other testers: None

Screenshots

Nothing on screen

Risk and rollback

If the check were wrong, a nightly would be skipped and the next merge builds. Reverting the commit is enough.

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above).
  • Tested in the game, or what wasn't is named under Testing.
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported.
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.
## Why Every merge to main queued a full nightly release, and a few merges in a row built every one of them in turn (about 10 Longshot nightlies were queued at once on 2026-11-13). Only the newest one matters. ## What changed - `.forgejo/workflows/release.yml`: on a push, *The version* compares the run's commit with `origin/main`. If main has moved on, it notes that and gives no tag; linux, windows and publish then skip (`if: needs.version.outputs.tag != ''`). - The concurrency group is unchanged (`release-<ref>`, `cancel-in-progress: false`): Forgejo still runs one release at a time and queues the rest, so the nightly already running is never cancelled; a queued one that has become outdated finishes in seconds when its turn comes. Forgejo 17 has no "cancel only the queued runs" mode (only queue, or cancel everything including the running one). - Tags (rc, stable) and runs by hand are not affected. ## Flags and settings None ## Measurements main: 341d63a4 (2026-11-13) this PR: ci/nightly-skip-outdated @ e2cb389f | | main @ 341d63a4 | this PR @ e2cb389f | |---|---|---| | nightlies built for 3 merges in a row | 3 full builds, one after another | 1 full build (the newest), 2 skipped in seconds | (From the workflow's logic; main's next merges will show it.) ## Testing **Tested:** actionlint (no new findings), and the tests that read the workflows. **Not tested:** a run on the runner; the next merges to main will show it. **Needs other testers:** None ## Screenshots Nothing on screen ## Risk and rollback If the check were wrong, a nightly would be skipped and the next merge builds. Reverting the commit is enough. ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [x] Rebased on current `main`. - [x] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). - [x] Tested in the game, or what wasn't is named under Testing. - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [x] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.
ci(release): a nightly for a commit main has moved past skips itself, so merges in a row build once
Some checks failed
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 9s
CI / Conventional Commit title (pull_request) Successful in 6s
CI / Workflow lint (actionlint) (pull_request) Failing after 9s
Third-party parts / As their notes say (pull_request) Successful in 11s
e2cb389f81
HumanBean deleted branch ci/nightly-skip-outdated 2026-11-13 05:56:51 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!128
No description provided.