CI: auto-release a version tag when Renovate merges a dependency update #16

Merged
lilleman merged 1 commits from auto-release into main 2026-07-05 21:23:20 +02:00
Owner

Auto-cuts a vX.Y.Z release tag when Renovate merges a dependency update, so image releases track dependency changes without manual tagging.

  • Tag-only, decoupled from apiVersion. A major release is just a bigger image tag; HOST_API_VERSION (the plugin contract) is untouched and never breaks plugins for a dep bump.
  • renovate.json stamps each commit with a Release-Bump: {{{updateType}}} trailer.
  • renovate.yml gains an auto-release job (needs: renovate) that targets origin/main, and — when the tip is a Renovate commit with untagged changes — computes the next tag (highest trailer since the last tag; pre-1.0 shifts down so nothing auto-crosses into 1.0.0) and pushes it with renovate-bot's PAT so release.yml promotes the already-built image.
  • auto-release/next-version.ts is a pure, unit-tested core (0.x-preserving semver).

Verified: renovate-config-validator --strict, tsc --noEmit, 376 unit tests (5 new); the tag/trailer/empty-range/human-tip git plumbing exercised in scratch repos. Stability-reviewer approved.

Auto-cuts a `vX.Y.Z` release tag when Renovate merges a dependency update, so image releases track dependency changes without manual tagging. - **Tag-only, decoupled from `apiVersion`.** A `major` release is just a bigger image tag; `HOST_API_VERSION` (the plugin contract) is untouched and never breaks plugins for a dep bump. - `renovate.json` stamps each commit with a `Release-Bump: {{{updateType}}}` trailer. - `renovate.yml` gains an `auto-release` job (`needs: renovate`) that targets `origin/main`, and — when the tip is a Renovate commit with untagged changes — computes the next tag (highest trailer since the last tag; **pre-1.0 shifts down** so nothing auto-crosses into `1.0.0`) and pushes it with renovate-bot's PAT so `release.yml` promotes the already-built image. - `auto-release/next-version.ts` is a pure, unit-tested core (0.x-preserving semver). Verified: `renovate-config-validator --strict`, `tsc --noEmit`, 376 unit tests (5 new); the tag/trailer/empty-range/human-tip git plumbing exercised in scratch repos. Stability-reviewer approved.
lilleman added 1 commit 2026-07-05 21:06:55 +02:00
CI: auto-release a version tag when Renovate merges a dependency update
CI / full-gate (push) Successful in 2m33s
Mirror / github-mirror (push) Successful in 2s
145db5b4cd
lilleman merged commit 145db5b4cd into main 2026-07-05 21:23:20 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: larvit/plainpages#16