fix(release): keep Windows beta signing alive when msi bundle is absent#403
Merged
Conversation
Prerelease tags build nsis-only, so the msi bundle directory never exists. The Windows job steps run under bash -eo pipefail, where MSI=$(find ... | head -1) exits the script at the assignment the moment find returns non-zero — the v1.1.25-beta.1 run died in 'Regenerate updater signatures' before printing a single line. Guard the msi find pipelines with || true (empty MSI is already the handled prerelease case) and make the beta.json publish step fail loudly if the semver comparison ever produces no output instead of silently skipping the manifest update.
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
The first beta tag (
v1.1.25-beta.1, run 29514971200) failed in the Windows job's Regenerate updater signatures step — instantly, with no output.Root cause: prerelease tags build
nsis-only (#398), so themsibundle directory never exists. The Windows steps run underbash -eo pipefail, whereMSI=$(find "$BUNDLE_DIR/msi" ... 2>/dev/null | head -1)kills the whole script at the assignment:
findexits non-zero on the missing directory,pipefailpropagates it throughhead, and-eaborts before the script reaches its ownIS_PRERELEASEhandling. Reproduced locally withbash -e -o pipefail.Fix
findpipelines (signature-regeneration + artifact-gathering steps) with|| true— an emptyMSIis exactly the prerelease case the script already handles, and stable builds still hard-fail on a genuinely missing MSI via the existingIS_PRERELEASEcheck.npx semvercomparison produces no output, instead of silently skipping the manifest update.Verification
Both behaviors reproduced/validated locally under
bash -e -o pipefail: the unguarded assignment exits 1 before any output; the guarded one proceeds withMSI="". Workflow YAML parses.After merge
Re-tag as
v1.1.25-beta.2from develop (tag-triggered workflows run the workflow file at the tag's commit, so the failedv1.1.25-beta.1tag can't be fixed in place).Refs #399