ci(release): archive both binaries to Artifact Registry from on-release; drop the legacy release workflows - #214
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Claude review status
Last reviewed: New this round: 1 finding(s), 0 question(s) · Resolved this round: 0 · Open questions: 0 |
…se; drop the legacy release workflows The Artifact Registry archive moves into on-release.yml, where the other publish targets already live. One build job builds and verifies both binaries and hands them to two target jobs: `assets` attaches them to the GitHub Release as before, `registry` uploads them to the generic repository megaeth-generic-registry under <binary>/<X.Y.Z>/<binary> (the org convention, as mega-evme; the legacy layout was <binary>/<commit-sha>/release/vX.Y.Z/<binary>). Both targets publish the same bytes, so the Release page and the registry agree on the checksum. GCP_AUTH_KEY comes from the `publish` environment, whose deployment policy allows only v* tag refs. release.yaml and release-tracing.yaml — the chain-ops based archive on tag push, gated by the `prod` environment and needing PAT_GAO_CI to check out chain-ops — are deleted; the `prod` environment and its secrets go once this has shipped a release. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f74ec244d9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…obes Same one-line change as #213, carried here so this PR is correct on its own whichever merges first. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
0 blocking · 0 should-fix · 1 suggestion(s) · 0 open question(s)
Reviewed 8dc29bd4..8ea03171.
Findings without inline anchors:
.github/workflows/release-settle.yml:8— [Minor] release-settle.yml comment still describes release.yaml/release-tracing.yaml as active archivers, but this PR deletes them Reader-level confusion for the person operating a release: the doc comment cites two workflows that are gone and pins the archive step to a tag push that no longer exists, hiding that on-release.yml now performs both the Release-page attach and the Artifact Registry archive. It also weakens the reasoning in the surrounding paragraph, which relies onrelease.yaml / release-tracing.yamlstill being a distinct target. Suggested fix: Update the comment in release-settle.yml so it matches the new shape, e.g. replace 'on-release.yml then attaches the binaries; release.yaml / release-tracing.yaml archive to Artifact Registry on the tag push' with something like 'on-release.yml then attaches the binaries to the Release page and archives them to Artifact Registry'.
Retires the legacy release pipeline. The Artifact Registry archive of both binaries moves into
on-release.yml, next to the Release-page assets, andrelease.yaml/release-tracing.yamlare deleted.Shape
buildbuilds both binaries, verifies each reports the tag's version (release-verify-version), and hands them over as a workflow artifact.assetsattaches them plusSHA256SUMSto the GitHub Release (unchanged behaviour).registryuploads them to the generic repositorymegaeth-generic-registry(devops-production-464602,asia-northeast1) with the sharedrelease-upload-artifactaction, underenvironment: publish. The action is idempotent: an identical file already there is a no-op, a different one fails rather than overwrites.One build feeds both targets, so the Release page and the registry carry the same bytes and the same checksum.
dry_run(rehearsal dispatch on a tag ref) runs everything and publishes nothing.Registry layout changes
The new path is the org convention already used for
mega-evme:<binary>/<X.Y.Z>/<binary>, e.g.stateless-validator/2.0.19/stateless-validator. The legacy chain-ops action wrote<binary>/<commit-sha>/release/vX.Y.Z/<binary>(v2.0.18 is atstateless-validator/4d5c0b8…/release/v2.0.18/stateless-validator). I found no consumer of that layout in chain-ops, mega-infra, dist-docs or the CI inventories; if something outside those reads it, the shared action'spathinput can reproduce the old shape.What goes away
release.yamlandrelease-tracing.yaml: tag-push archive through chain-ops'pkg_upload_gcp, needingPAT_GAO_CIto check out chain-ops (this repo's dependencies are public; nothing else here uses that PAT) and gated by theprodenvironment. Onlyrelease.yamlhad the gate;release-tracing.yamluploaded unapproved.releaseenvironment #212) the release approval is thereleaseenvironment at settle, so the archive no longer needs its own approval gate. Theprodenvironment and its secrets are deleted once this has shipped a release.Prerequisites
publishenvironment exists with av*tag deployment policy and no reviewers.GCP_AUTH_KEYmust be added to it as an environment secret (the org-level secret is the fallback until then).--version, which thebuildjob verifies) and ci(release): settle directly, gated by thereleaseenvironment #212 (header wording this file already carries).🤖 Generated with Claude Code