Skip to content

feat: add release candidate tagging workflow#212

Merged
randy-concepcion merged 3 commits into
mainfrom
AIPLAT-911-rc-tagging-workflow
Jul 24, 2026
Merged

feat: add release candidate tagging workflow#212
randy-concepcion merged 3 commits into
mainfrom
AIPLAT-911-rc-tagging-workflow

Conversation

@randy-concepcion

@randy-concepcion randy-concepcion commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

What's New

  • Adds .github/workflows/tag-release-candidate.yml, a workflow_dispatch workflow that tags an existing main-build image in GAR as a release candidate (vX.Y.Z-rc.N)
  • Tags the existing digest directly (no pull, no rebuild) via gcloud artifacts docker tags add
  • Inputs: a full commit SHA and an RC number
  • Validates the commit is on main, reads the version from pyproject.toml, and derives the RC tag
  • Safe to re-run: re-tagging the same digest is a no-op, and it refuses to move an existing RC tag to a different digest. Fails closed if the source image is missing or the registry lookup errors.
  • Keyless auth via the existing artifact-writer Workload Identity setup, no new secrets or permissions

Context

This PR is part of AIPLAT-911 (per-environment image tiers). It establishes the stage tier for MLPA: dev runs latest, stage will pin to an RC tag, and prod stays on stable semver.

The workflow promotes a selected main-build image to vX.Y.Z-rc.N by adding a tag to the existing digest in GAR. It does not rebuild, pull, or push any image. A separate follow-up PR will add a stable promotion workflow triggered on GitHub release.

Every step after the build tags the same digest.

flowchart LR
    A[merge to main] --> B["build<br/>(short-SHA tag)"]
    B --> C["this PR<br/>adds vX.Y.Z-rc.N"]
    C --> D["validate RC on stage<br/>(manual)"]
    D --> E["create GitHub release<br/>(manual)"]
    E --> F["follow-up PR<br/>adds vX.Y.Z"]

    style C fill:#e8f4f8
Loading

Testing

Not yet run. A workflow_dispatch workflow only appears in the Actions "Run workflow" UI after it lands on the default branch, so it can't be triggered from the PR branch. Will validate post-merge by promoting a known main build (latest) and confirming the RC tag lands on the expected digest.

How to use

From the Actions tab, select "Tag Release Candidate in GAR", click "Run workflow" on main, and provide:

  • The full commit SHA of a main-branch build
  • The RC number (1, 2, 3, ...)

The workflow produces a job summary table with the commit, source tag, version, RC tag, and digest.

Related

@randy-concepcion
randy-concepcion force-pushed the AIPLAT-911-rc-tagging-workflow branch 2 times, most recently from 683cd86 to dede27e Compare July 23, 2026 06:47
@randy-concepcion
randy-concepcion force-pushed the AIPLAT-911-rc-tagging-workflow branch from dede27e to 709af8c Compare July 23, 2026 07:07
@randy-concepcion
randy-concepcion marked this pull request as ready for review July 23, 2026 18:30
@randy-concepcion
randy-concepcion requested a review from a team as a code owner July 23, 2026 18:30

@noahpodgurski noahpodgurski left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Great work 🙌

@randy-concepcion
randy-concepcion merged commit 7301893 into main Jul 24, 2026
1 check passed
@randy-concepcion
randy-concepcion deleted the AIPLAT-911-rc-tagging-workflow branch July 24, 2026 14:09
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.

2 participants