Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
push:
branches:
- main
# Version tags (e.g. v1.2.3) cut release images: :1.2.3, :1.2, :1 (and :latest).
tags:
- 'v*'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Broad Tag Glob Starts Empty Pushes

This trigger matches any tag beginning with v, but the only tag rules added for tag events are semver rules. If someone pushes a matching non-semver tag such as v1, vtest, or v2024.01.01, the workflow runs, branch and PR rules emit no tag, semver rules emit no tag, and the build-push steps run with an empty tag list.

Fix in Claude Code Fix in Codex

pull_request:
# `closed` is needed so we can clean up the PR image once it's merged.
types: [opened, synchronize, reopened, closed]
Expand Down Expand Up @@ -39,10 +42,13 @@ jobs:
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6
with:
images: ghcr.io/${{ github.repository }}
# main pushes -> :main ; pull requests -> :pr-<number>
# main pushes -> :main ; PRs -> :pr-<number> ; v* tags -> :1.2.3, :1.2, :1, :latest
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
Comment on lines +50 to +51

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Pre-Releases Move Stable Aliases

When a tag like v1.2.3-beta.1 is pushed, these semver patterns still emit :1.2 and :1 for the backend image, while the default metadata flavor also emits :latest. That moves stable-looking aliases from the last stable release to a pre-release container, so users pinned to :1, :1.2, or :latest can receive beta or rc code.

Fix in Claude Code Fix in Codex


- name: Build and push backend
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7
Expand All @@ -65,6 +71,9 @@ jobs:
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
Comment on lines +75 to +76

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Pre-Releases Move UI Aliases

The UI image uses the same semver alias patterns, so a pre-release tag like v1.2.3-beta.1 can publish ghcr.io/${{ github.repository }}-ui:1.2, :1, and :latest. Consumers of the stable UI image aliases can be switched to an unstable release image without changing their pin.

Fix in Claude Code Fix in Codex


- name: Build and push UI
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7
Expand Down
Loading