fix(release): actually create a GitHub Release per successful build - #197
Open
github-actions[bot] wants to merge 1 commit into
Open
fix(release): actually create a GitHub Release per successful build#197github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
releases/latest 404s and tags is empty despite dozens of green "Release (images + GitOps bump)" runs. Root cause: the workflow never contained a git-tag or `gh release create` step at all -- it only builds/pushes images and GitOps-bumps values-prod.yaml via a self-merged PR (verified working, using GH_APPROVE_TOKEN). There was no broken/skipped bump step to fix; the release-creation code simply never existed. Add a step that creates one GitHub Release per successful build, tagged release-<short-sha> to match the image tags already pushed to GHCR. Uses the job's existing GITHUB_TOKEN (contents: write, already granted) -- creating a tag/Release via the API doesn't push to the protected `main` branch, so no elevated token or new secret is needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GaPa3JgrVNtWrGvqQEAEqv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which case is it
None of (a)-(d) as stated — the release/tag-creation code never existed at all. This isn't a step that fails, is skipped, or no-ops silently; there was no
git tag/gh release createanywhere in the repo to begin with. Grep confirms it:Evidence
gh api repos/izzywdev/FuzeAgent/releases/latest→404gh api repos/izzywdev/FuzeAgent/tags→[]gh api repos/izzywdev/FuzeAgent/releases→[].github/workflows/release.yml("Release (images + GitOps bump)") does run, and does succeed — e.g. run 32779840396 (success, 2026-08-24). Its job log forbuild-and-bumpshows the full sequence completing: images built/pushed,values-prod.yamlbumped, branch pushed, and — proven by the automaticgit fetch/fast-forward ofmainthatgh pr mergeperforms only after a merge actually lands — the GitOps bump PR created, approved, and admin-merged, usingGH_APPROVE_TOKEN. That secret is set and works; it is not the "GH_RELEASE_PAT unset" failure mode this fleet has hit elsewhere.gh api repos/izzywdev/FuzeAgent/pulls?state=closed: PRs release: fuzeagent images 98b9b314bb0d #193, release: fuzeagent images 5772f14a7a75 #186, release: fuzeagent images 4d4903aa3103 #183, release: fuzeagent images a77aab6a8de6 #180 titledrelease: fuzeagent images <sha>all show a realmerged_attimestamp.VERSION, noCHANGELOG, no semver tooling), ever created a git tag or a Release object. "Release" in the workflow's name describes the deploy, not a GitHub Release.What I changed
Added one step to the end of the existing
build-and-bumpjob in.github/workflows/release.yml: after the images are built and the GitOps bump PR is merged, create a GitHub Release taggedrelease-<short-sha>(the same short SHA already used for the image tags), with notes listing the five images published in that run.GITHUB_TOKEN(contents: write, already granted) — creating a tag + Release via the API never pushes to the protectedmainbranch, so it needs no elevated token and no new secret.|| true/continue-on-error. Ifgh release createfails, the job fails, visibly.actionlintand a YAML parse — both clean.What remains / owner action
None required for this to start working. No secret needs to be added or rotated — the fix only relies on the token and permissions the job already has. Once this PR merges, the next push to
maintouching one ofrelease.yml's watched paths will produce the first-ever entry ingh api repos/izzywdev/FuzeAgent/releases.One open judgment call left to the owner, not a blocker: the tag scheme here is
release-<image-sha>(traceability to what was built), not semantic versioning — there's noVERSIONfile or conventional-commit tooling in this repo to derive a semver bump from. If the owner wants real semver releases instead, that's a separate, larger design decision (parsing commit history / a version file) and is out of scope for "make the release step actually create a release."