Skip to content

fix(ci): publish distinct per-image tags for prerelease versions - #979

Merged
Starosdev merged 1 commit into
betafrom
ci/965-prerelease-image-tags
Oct 14, 2026
Merged

Starosdev merged 1 commit into
betafrom
ci/965-prerelease-image-tags

Conversation

@Starosdev

Copy link
Copy Markdown
Owner

Summary

Fixes prerelease image tagging. For v2.0.0-beta.1, every image in the build matrix pushed to :2.0.0-beta.1 and the last build won, so that tag holds the web image, and no :2.0.0-beta.1-<image> tags exist. docker/metadata-action rewrites any {{version}}-based pattern to plain {{version}} for prerelease versions, which drops the -<image> suffix.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • CI/CD or infrastructure change

Related Issues

Related to #965. Follows #978.

Changes Made

  • New step Resolve prerelease version (only on v* tags containing -) outputs the tag name without the leading v.
  • The {{version}}-<image> semver rule is limited to stable tags.
  • New raw rule publishes <version>-<image> for prerelease tags, for example 2.0.0-beta.1-omnibus.
  • {{version}} without suffix stays on the default (omnibus) image only, so :2.0.0-beta.2 will be omnibus.
  • Stable tags are unchanged: {{version}}-<image>, {{major}}.{{minor}}, {{major}}, latest behave as before.

Testing

  • I have tested this locally
  • I have added/updated tests that prove my fix/feature works
  • All existing tests pass

actionlint clean. Evidence for the bug: the v2.0.0-beta.1 tag run (38482205001) pushed only ghcr.io/starosdev/scrutiny:2.0.0-beta.1, and that manifest's entrypoint is /entrypoint-web.sh. The next prerelease tag is the real test: expect :2.0.0-beta.N on omnibus plus one :2.0.0-beta.N-<image> per matrix image, and unchanged latest, 1, 2, 2.0.

Checklist

  • My code follows the project's code style
  • I have performed a self-review of my code
  • I have commented my code where necessary (particularly complex areas)
  • I have updated the documentation if needed
  • My changes generate no new warnings

Notes

:2.0.0-beta.1 is left as published (web image); its release notes point testers to :beta-omnibus.

Review: required (release publishing behavior changes on merge with no separate deploy step)

docker/metadata-action rewrites every {{version}}-based pattern to plain
{{version}} for prerelease versions, so each matrix image pushed to the same
version tag and the last build won: v2.0.0-beta.1 tagged the web image as
:2.0.0-beta.1 and created no :2.0.0-beta.1-<image> tags. Limit the
{{version}}-<image> rule to stable tags and build the per-image prerelease
tag from the tag name instead. :<version> stays on the default image only.
@Starosdev Starosdev added infrastructure CI/CD and infrastructure docker Docker/container related labels Oct 13, 2026
@Starosdev
Starosdev merged commit 678a5ac into beta Oct 14, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docker Docker/container related infrastructure CI/CD and infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant