Skip to content

fix(release): keep Windows beta signing alive when msi bundle is absent#403

Merged
beruro merged 1 commit into
developfrom
fix/release-beta-msi-find
Jul 17, 2026
Merged

fix(release): keep Windows beta signing alive when msi bundle is absent#403
beruro merged 1 commit into
developfrom
fix/release-beta-msi-find

Conversation

@Harry19081

Copy link
Copy Markdown
Member

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 the msi bundle directory never exists. The Windows steps run under bash -eo pipefail, where

MSI=$(find "$BUNDLE_DIR/msi" ... 2>/dev/null | head -1)

kills the whole script at the assignment: find exits non-zero on the missing directory, pipefail propagates it through head, and -e aborts before the script reaches its own IS_PRERELEASE handling. Reproduced locally with bash -e -o pipefail.

Fix

  • Guard the three msi find pipelines (signature-regeneration + artifact-gathering steps) with || true — an empty MSI is exactly the prerelease case the script already handles, and stable builds still hard-fail on a genuinely missing MSI via the existing IS_PRERELEASE check.
  • Hardening in the same family: the beta.json publish step now fails loudly if the npx semver comparison 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 with MSI="". Workflow YAML parses.

After merge

Re-tag as v1.1.25-beta.2 from develop (tag-triggered workflows run the workflow file at the tag's commit, so the failed v1.1.25-beta.1 tag can't be fixed in place).

Refs #399

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.
@beruro
beruro merged commit e892bc1 into develop Jul 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants