From eaf9a25ebfbe102c366bd9992945aebd38263aac Mon Sep 17 00:00:00 2001 From: "Tj (bougyman) Vanderpoel" Date: Sun, 9 Aug 2026 17:12:22 -0400 Subject: [PATCH] fix(ci): create releases as drafts so assets survive Immutable Releases v0.2.0 shipped with zero assets, permanently - GitHub's Immutable Releases (GA since Oct 2025) is enabled on this repo, and locks a *published* release's assets the moment it's created (confirmed via `gh api .../releases`: v0.1.2 shows immutable: false, v0.2.0 shows immutable: true). release-please was publishing the release immediately, then spending ~10 minutes cross-compiling Burrito targets before `gh release upload` ran - by then the release was already locked, and the upload 422'd. Fix is the documented workaround: create the release as a draft (.release-please-config.json), upload every asset while still a draft, then publish it (gh release edit --draft=false) as the final step of the burrito job, once binaries + SHA256SUMS have actually landed. Also closes a latent window beyond the 422 itself: previously a half-built release was visible/"latest" with zero assets for the whole build window even without the immutability bug - drafts aren't visible until published. v0.2.0 itself can't be repaired - a genuinely new release is needed after this lands to get real, installable assets. Closes #18. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/burrito-release.yaml | 12 ++++++++++++ .release-please-config.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/burrito-release.yaml b/.github/workflows/burrito-release.yaml index f815e8b..06a84f9 100644 --- a/.github/workflows/burrito-release.yaml +++ b/.github/workflows/burrito-release.yaml @@ -86,6 +86,18 @@ jobs: GH_TOKEN: ${{ github.token }} run: gh release upload "${{ inputs.tag_name }}" app/burrito_out/* --clobber working-directory: . + - + # release-please creates this as a draft (see + # .release-please-config.json) specifically so assets can still be + # attached above - GitHub's Immutable Releases (GA since Oct 2025) + # locks a *published* release's assets the moment it's created, and + # this build takes ~10 minutes, well past that point. Publish only + # now that every asset has actually landed. + name: Publish the release + env: + GH_TOKEN: ${{ github.token }} + run: gh release edit "${{ inputs.tag_name }}" --draft=false + working-directory: . container: name: Build and publish container image diff --git a/.release-please-config.json b/.release-please-config.json index 5b6fc0d..536962d 100644 --- a/.release-please-config.json +++ b/.release-please-config.json @@ -5,7 +5,7 @@ "release-type": "simple", "bump-minor-pre-major": true, "bump-patch-for-minor-pre-major": true, - "draft": false, + "draft": true, "prerelease": false, "version-file": ".version.txt", "extra-files": [