Skip to content

fix(docker-release): make promote mode a true one-click release - #74

Merged
JSisques merged 1 commit into
mainfrom
fix/promote-mode-auto-version-digest
Sep 16, 2026
Merged

JSisques merged 1 commit into
mainfrom
fix/promote-mode-auto-version-digest

Conversation

@JSisques

Copy link
Copy Markdown
Contributor

Summary

bump_mode: promote was a bug away from being a real one-click release: its version-bump step accidentally shared legacy mode's condition (!= 'release-train', which also matches promote), so it still asked a human for a manual patch/minor/major choice — despite the trunk-based model having only one channel, exactly the thing this migration was supposed to remove.

Caught by the user reviewing the actual Run workflow form in GitHub's UI: it still required version (a dropdown) and source_digest (required text field).

  • promote now computes the version bump automatically from conventional commits since the latest stable tag — same algorithm release-train-detect already uses for its main channel (breaking change → major, feat: → minor, else → patch).
  • source_digest is now optional: when empty, it's auto-resolved from the current :edge tag (the latest build trunk-ci-cd.yml validated on main) via docker buildx imagetools inspect. Passing it explicitly still works, for the exceptional case of releasing an earlier commit.
  • Net effect: workflow_dispatch for a trunk-based repo's release.yml now needs zero required inputs — click "Run workflow" and go.

Also updated openspec/changes/trunk-based-ci-cd/design.md (new D8) and tasks.md (new section 5) to record this as a design fix discovered during the beacon-api pilot, and the README's promote-mode usage example.

Test plan

  • actionlint clean on docker-release.yml
  • tests/release-train-detect.test.sh — 36/36, no regression (release-train.yml untouched)
  • Live dry-run against beacon-api once this merges — will re-test release.yml with zero inputs

bump_mode=promote was accidentally falling through to legacy's
manual "version" bump step (its condition was != 'release-train',
which also matched promote), so it still asked a human for a
patch/minor/major choice despite there being only one channel in
the trunk-based model.

Fixed: promote now computes the bump automatically from
conventional commits since the latest stable tag (same algorithm
release-train-detect uses for main), and auto-resolves
source_digest from the current :edge tag when not passed
explicitly. workflow_dispatch now needs zero required inputs.
@JSisques
JSisques merged commit 3c5a03f into main Sep 16, 2026
2 checks passed
@JSisques
JSisques deleted the fix/promote-mode-auto-version-digest branch September 16, 2026 09:32
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.

1 participant