Skip to content

ci: Fix release artifact publication - #607

Open
timflannagan wants to merge 1 commit into
mainfrom
fix/release-pipeline
Open

ci: Fix release artifact publication#607
timflannagan wants to merge 1 commit into
mainfrom
fix/release-pipeline

Conversation

@timflannagan

@timflannagan timflannagan commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Description

Clean up the release pipeline so stable releases have one supported entry
point: pushing a vX.Y.Z tag for a commit on main. The workflow validates
the tag before publication and builds both container images directly in GHCR
instead of targeting the local development registry.

Align the Helm chart with the published artifacts by retaining X.Y.Z as the
chart version while using vX.Y.Z for the application version and default
server image. Add a maintainer runbook covering the published artifacts,
tagging the freshly fetched origin/main revision, verification, and retry
behavior.

Change Type

/kind cleanup

Changelog

NONE

Additional Notes

Manual workflow dispatch is intentionally removed so the current release
process cannot publish an incomplete release without its Git tag and GitHub
Release. A future release-pipeline refactor can make dispatch the sole entry
point while having the workflow own tag creation.

Verified with make charts-test CHART_VERSION=0.4.0 (105 tests),
make charts-lint CHART_VERSION=0.4.0, and make release-cli VERSION=v0.4.0.
All five CLI targets cross-compile successfully, the chart renders
server:v0.4.0 with chart version 0.4.0 and application version v0.4.0,
and Docker build dry runs resolve both images under
ghcr.io/agentregistry-dev/agentregistry.

Copilot AI review requested due to automatic review settings July 31, 2026 21:20
Comment thread .github/workflows/release.yaml

Copilot AI left a comment

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.

🟡 Not ready to approve

Manual workflow dispatch can still publish mismatched tags if the provided version lacks the required leading v (see stored comment on normalizing/validating VERSION).

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Pull request overview

This PR fixes the GitHub Actions release pipeline to publish container images to GHCR (instead of the local dev registry), aligns the Helm chart’s default image tag and appVersion with the vX.Y.Z release image tags, and documents the end-to-end release procedure (artifacts, verification, recovery).

Changes:

  • Update the release workflow to publish images to ghcr.io and require an explicit version for manual dispatch; remove the Helm registry logout step.
  • Align Helm chart appVersion/default image tag expectations to vX.Y.Z and update chart tests/metadata accordingly.
  • Add and cross-link release documentation from existing governance/development/contributing docs.
File summaries
File Description
docs/releasing.md New canonical release procedure documentation (artifacts, verification, retry/recovery).
docs/governance/cncf/technical-review.md Adds a link to the new release procedure documentation.
DEVELOPMENT.md Points readers to the canonical release procedure doc from the Helm pipeline section.
CONTRIBUTING.md Replaces inline release steps with a link to the canonical release procedure doc.
charts/agentregistry/tests/deployment_test.yaml Updates test expectation to require a v-prefixed default image tag.
charts/agentregistry/Chart-template.yaml Sets appVersion to v${CHART_VERSION} and aligns Artifact Hub image annotation tag format.
.github/workflows/release.yaml Fixes build registry to GHCR, requires manual version input, and removes Helm logout.
Review details
  • Files reviewed: 7/7 changed files
  • Comments generated: 1
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Comment thread .github/workflows/release.yaml Outdated
@timflannagan
timflannagan force-pushed the fix/release-pipeline branch 2 times, most recently from a631d5d to fea57ad Compare July 31, 2026 21:38
@timflannagan
timflannagan requested a review from Copilot July 31, 2026 21:40

Copilot AI left a comment

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.

🟡 Not ready to approve

The PR description claims manual dispatch behavior that the updated release workflow no longer supports, and there is also a small grammar fix needed in the documentation.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (2)

.github/workflows/release.yaml:11

  • The PR description says “Manual dispatch now requires an explicit version”, but this workflow no longer defines a workflow_dispatch trigger at all (it only runs on pushed tags). Please update the PR description to match the implemented behavior, or reintroduce workflow_dispatch if manual releases are still required.
on:
  push:
    tags:
    - "v*.*.*"

env:
  VERSION: ${{ github.ref_name }}
  DOCKER_REGISTRY: ghcr.io
  DOCKER_BUILD_REGISTRY: ghcr.io

docs/governance/cncf/technical-review.md:163

  • Minor grammar: “artifact” should be plural here since the sentence refers to multiple procedures/artifacts.
The tagging, publication, artifact, verification, and recovery procedures are
  • Files reviewed: 7/7 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

The release workflow now targets GHCR consistently, keeps container and Helm
application versions aligned, and documents the complete tag-based maintainer
process.

Previously, image builds used the local build registry even after the workflow
logged into GHCR, and the chart defaulted to an image tag without the release
tag's leading v. The existing contributor notes also omitted artifact and
recovery details.

Now releases run only from validated stable SemVer tags, publish both images
to GHCR, and configure the chart to use the matching application version. The
documented procedure tags the freshly fetched main revision and covers
published artifacts, verification, and retries.

Signed-off-by: timflannagan <timflannagan@gmail.com>
- name: Validate version
shell: bash
run: |
if [[ ! "${VERSION}" =~ ^v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]]; then

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

@timflannagan
timflannagan requested a review from Copilot July 31, 2026 21:53
Comment on lines 10 to +11
DOCKER_REGISTRY: ghcr.io
DOCKER_BUILD_REGISTRY: ghcr.io

@timflannagan timflannagan Jul 31, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Before I forget myself, needed as the Makefile itself splits up these variables. Should simplify later

@timflannagan
timflannagan enabled auto-merge July 31, 2026 21:55

Copilot AI left a comment

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.

🟡 Not ready to approve

CONTRIBUTING.md now describes releases as coming from an “annotated SemVer tag”, which is ambiguous vs the required vX.Y.Z tag format used elsewhere and could mislead maintainers.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (1)

CONTRIBUTING.md:278

  • This section says releases are published from an "annotated SemVer tag", but elsewhere in the docs and the release workflow the required tag format is explicitly vX.Y.Z. Calling it a SemVer tag can be read as X.Y.Z (no v), which would not trigger the release workflow and would conflict with the runbook.
Maintainers should follow the complete [release process](docs/releasing.md).
Releases are built and published by GitHub Actions from an annotated SemVer
tag on `main`.
  • Files reviewed: 7/7 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

@timflannagan

Copy link
Copy Markdown
Collaborator Author

🟡 Not ready to approve

CONTRIBUTING.md now describes releases as coming from an “annotated SemVer tag”, which is ambiguous vs the required vX.Y.Z tag format used elsewhere and could mislead maintainers.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (1)

CONTRIBUTING.md:278

  • This section says releases are published from an "annotated SemVer tag", but elsewhere in the docs and the release workflow the required tag format is explicitly vX.Y.Z. Calling it a SemVer tag can be read as X.Y.Z (no v), which would not trigger the release workflow and would conflict with the runbook.
Maintainers should follow the complete [release process](docs/releasing.md).
Releases are built and published by GitHub Actions from an annotated SemVer
tag on `main`.
  • Files reviewed: 7/7 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Insane

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants