ci(release): upload into an existing release instead of creating a second one - #981
Merged
Merged
Conversation
u9g
force-pushed
the
jason/release-upload-existing
branch
from
September 16, 2026 12:27
8e1239b to
16f4805
Compare
u9g
force-pushed
the
jason/release-upload-existing
branch
from
September 16, 2026 12:30
16f4805 to
935f5e4
Compare
u9g
force-pushed
the
jason/release-upload-existing
branch
from
September 16, 2026 15:53
935f5e4 to
cde1d8b
Compare
rektdeckard
approved these changes
Sep 16, 2026
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.
v2.18.7 shipped with no assets, and
get.livekit.io/cli404'd from 2026-09-15 20:30 UTC until v2.18.7 was re-released by hand.The release was created from the GitHub UI, which creates the tag at publish time — so by the time the Release workflow ran, a published release already existed for the tag.
gh release createdoes not attach to an existing release: it created a second, untagged one (untagged-26db48ab9a2d552b0c27, see https://github.com/livekit/livekit-cli/actions/runs/35020034514/job/104554235237) with all 7 archives, and exited 0. That draft was later deleted.goreleaser looked the release up by tag first and uploaded into it, so it tolerated this. The
ghrewrite in #961 lost that property, silently. Every release before v2.18.7 had its tag pushed by git, so the workflow was always the first to touch the release and the gap never showed.This restores it: if a release already exists for the tag, upload into it; otherwise create the draft as before. The draft stays, so release notes and attached binaries are still reviewed by a human before publishing.
One gap this does not close: when the release is published from the UI,
releases/latestpoints at a release with no assets for the couple of minutes the build takes. Pushing the tag with git and publishing the draft CI produces avoids that window entirely.Homebrew and Docker were unaffected because neither reads GitHub release assets.