Skip to content

release-image: expected-commit input closes the mid-build release race - #64

Merged
cshuttle merged 1 commit into
mainfrom
feat/release-expected-commit
Aug 20, 2026
Merged

release-image: expected-commit input closes the mid-build release race#64
cshuttle merged 1 commit into
mainfrom
feat/release-expected-commit

Conversation

@cshuttle

Copy link
Copy Markdown
Owner

Closes #63.

  • New optional expected-commit input: when set, the promoted digest must resolve to exactly that commit (7-40 char SHA prefix) or the release fails naming both SHAs. Requires verify-source-commit (validated). Callers whose artifact builds on every push pass github.sha from the dispatch context.
  • Without it, a promoted build that trails the released ref emits a ::warning:: in the run summary — paths-filtered repos keep today's behaviour, just visibly.
  • Doc fix on verify-source-commit: it names what the guard can and cannot catch, and no longer claims the git tag points at the matched commit (the tag moved to the ref with the workflow-file-protection workaround).

First consumer: cshuttle/nmon's release.yml (follow-up PR there once this is tagged).

🤖 Generated with Claude Code

…n-flight race (#63)

verify-source-commit proves the digest came from this branch's history, but
the parent commit's image is in that history too — a release dispatched
before the merge's build finished promoted it silently (nmon v1.14.0). The
new expected-commit input makes the resolved build commit match exactly or
the release fails with both SHAs named; callers whose artifact builds on
every push pass their dispatch context's github.sha. Without it, a promoted
build that trails the released ref now emits a run-summary warning. Also
corrects the verify-source-commit doc: the matched commit is recorded in the
tag message, not what the git tag points at (that changed with the
workflow-file-protection workaround).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cshuttle
cshuttle merged commit 703f294 into main Aug 20, 2026
11 checks passed
@cshuttle
cshuttle deleted the feat/release-expected-commit branch August 20, 2026 02:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

release-image: verify-source-commit passes on the PARENT commit, so a release fired mid-build silently ships stale code — add an expected-commit input

1 participant