release.yml: idempotent draft assembly (no more duplicate v0.2.1 drafts) + surface missing setup.exe - #712
Merged
Conversation
The checksums job final step used gh release create unconditionally, which is NOT idempotent: re-running the job against an existing v-tag draft spawns a SECOND draft with the same tag_name. Repeated v0.2.1 re-runs piled up four duplicate drafts; gh release view returns the stale one, making the tag look incomplete. Refresh ONE canonical draft instead: if the release exists, gh release upload --clobber; else create it fresh. Also flip the Windows setup.exe upload from if-no-files-found: ignore to warn, so a run where ISCC produced no installer is visible as an annotation rather than silently yielding a draft with .zip but no .exe. Still non-fatal; the portable .zip stays the must-have deliverable. The setup.exe already routes into the draft via the separate pkg-windows-setup-<coin> artifact, which the checksums job pulls through its pkg-* download pattern.
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.
Fixes two release.yml/checksums-job issues surfaced completing v0.2.1 (integrator, 2026-07-15).
1. Duplicate drafts (the actual workflow bug)
The final step ran
gh release create "$TAG" --draft ... dist/*unconditionally.gh release createis NOT idempotent against a tag that already has a draft — it spawns ANOTHER draft with the same tag_name. Re-running the checksums job for v0.2.1 produced four duplicate drafts (352940274/354059858/354194644/354303682);gh release view v0.2.1returns the stale one, so the tag looked incomplete.Fix: refresh ONE canonical draft —
gh release view?gh release upload --clobber:gh release create. Re-runs now update the single draft in place.2. setup.exe visibility
Investigated the plumbing: setup.exe is uploaded as a separate
pkg-windows-setup-<coin>artifact (not bundled in pkg-windows-), and the checksums job already pulls it into the draft via itspattern: pkg-*download. So routing is correct — the .exe was absent because that draft-producing run predated a working ISCC on VM217 (the Inno step hit its choco-fail exit-0 skip path). With persistent ISCC on VM217, a fresh run now produces + ships them.To keep this from silently recurring, flipped the setup.exe upload from
if-no-files-found: ignoretowarn: a run where ISCC yields no installer is now an annotation instead of a silent .zip-only draft. Still non-fatal — the portable .zip stays the must-have deliverable.Validation
After merge: one clean re-dispatch off the tag yields the canonical v0.2.1 draft (both .zip AND setup.exe per coin); the four duplicate drafts can then be deleted, keeping the newest canonical one.
Workflow-scope — needs your review + operator workflow-scope tap. No self-merge.