From 39db7bf6cb5c39fcdf71c875a4aaf704f34447fa Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Fri, 10 Jul 2026 14:13:17 +0200 Subject: [PATCH] fix(ci): publish v-prefixed image tags via type=ref,event=tag (#668) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #783 added `type=semver,pattern=v{{version}}` to the merge-job metadata, but metadata-action silently dropped it on prereleases — the 3.84.0-beta.0 build published only :3.84.0-beta.0 + :sha, not :v3.84.0-beta.0 (verified in the merge-backend push log + GHCR: :v3.84.0-beta.0 → 404). Replace the v{{version}}/v{{major}} semver patterns with type=ref,event=tag, which emits the git-tag name verbatim (v3.45.0 / v3.84.0-beta.0) for both stable and beta tags — exactly the string users pin (matches the GitHub release). Applies to both backend + frontend merge metadata steps. Takes effect on the next release build. The bare :3.84.0-beta.0 tags stay (the {{version}} patterns are unchanged), so both forms resolve. --- .github/workflows/docker-build.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 50fe78b3..ec186f55 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -282,9 +282,10 @@ jobs: type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}},enable=${{ steps.context.outputs.is_prerelease == 'false' }} type=semver,pattern={{major}},enable=${{ steps.context.outputs.is_prerelease == 'false' }} - type=semver,pattern=v{{version}} - type=semver,pattern=v{{major}}.{{minor}},enable=${{ steps.context.outputs.is_prerelease == 'false' }} - type=semver,pattern=v{{major}},enable=${{ steps.context.outputs.is_prerelease == 'false' }} + # #668/#783: publish the git-tag name verbatim (v3.45.0 / v3.84.0-beta.0) + # so users can pin the same string as the GitHub release. metadata-action's + # `pattern=v{{version}}` silently dropped it on prereleases, so use type=ref. + type=ref,event=tag type=sha,format=short # `:latest` + `:stable` follow the stable channel (the `stable` branch + # stable release tags). The default branch is now `main` (active dev), @@ -502,9 +503,10 @@ jobs: type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}},enable=${{ steps.context.outputs.is_prerelease == 'false' }} type=semver,pattern={{major}},enable=${{ steps.context.outputs.is_prerelease == 'false' }} - type=semver,pattern=v{{version}} - type=semver,pattern=v{{major}}.{{minor}},enable=${{ steps.context.outputs.is_prerelease == 'false' }} - type=semver,pattern=v{{major}},enable=${{ steps.context.outputs.is_prerelease == 'false' }} + # #668/#783: publish the git-tag name verbatim (v3.45.0 / v3.84.0-beta.0) + # so users can pin the same string as the GitHub release. metadata-action's + # `pattern=v{{version}}` silently dropped it on prereleases, so use type=ref. + type=ref,event=tag type=sha,format=short # `:latest` + `:stable` follow the stable channel (the `stable` branch + # stable release tags). The default branch is now `main` (active dev),