CI: publish release only after all assets are attached - #8
Merged
Conversation
Create the GitHub release as a draft and add a publish_release job that flips it to published once add_resources and add_submodules finish. This makes the release (and its download URLs) appear atomically. Previously the release published immediately while the slow teloscope.v<version>-with_submodules.zip upload ran afterward. Bioconda's autobump bot downloads that asset to compute the recipe sha256, so it could poll during the gap, 404, and land a bad/missing hash — the recurring "manual sha fix" problem.
AldhairMedico
force-pushed
the
fix-release-draft-publish
branch
from
July 8, 2026 16:48
c1fcf4e to
10ba611
Compare
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.
Problem
create_release.ymlpublishes the GitHub release immediately (draft: false), then the separate, sloweradd_submodulesjob builds and uploadsteloscope.v<version>-with_submodules.zip.Bioconda's autobump bot polls for new releases and downloads that asset to compute the recipe
sha256. If it polls during the window before the submodule-zip upload finishes, the asset 404s and the bump lands with a bad/missing hash — which is why several version bumps have needed the sha256 corrected by hand.Fix
Draft-then-publish:
create_releasenow creates the release as a draft (draft: true).publish_releasejob (needs: [add_resources, add_submodules]) flips it to published (draft: false) only after every asset is attached.The upload jobs are unchanged: they find the draft release by tag and append files to it, and — because they don't pass a
draft:input — leave the draft status untouched. So the release (and its download URLs) becomes visible to the autobump bot atomically, with-with_submodules.zipalready present.The asset name pattern
teloscope.v<version>-with_submodules.zipis unchanged (the Bioconda recipe URL depends on it).