fix(release): locate signed NSIS installer as the Windows updater artifact

The Locate Windows build artifacts step globbed for a *.nsis.zip updater
archive that Tauri 2.x no longer produces. With createUpdaterArtifacts the
NSIS installer is signed in place — <name>-setup.exe plus a detached
<name>-setup.exe.sig — and that signed installer IS the updater artifact;
the .nsis.zip was the deprecated v1Compatible format. The dead glob returned
empty and tripped the not-found guard, failing every Windows release after a
clean installer build. Capture the installer's own .sig and rename it in
lockstep with the exe so the rolling-release archive name and its detached
signature stay consistent.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
This commit is contained in:
Will Pfleger
2026-06-13 14:25:06 -04:00
parent 5c2f46e627
commit 1815c8093f
+18 -11
View File
@@ -664,23 +664,30 @@ jobs:
exit 1
fi
# Rename with _alpha-unsigned marker
# Tauri 2.x with createUpdaterArtifacts: true (v2 updater) signs the
# NSIS installer in place: it emits <name>-setup.exe + <name>-setup.exe.sig
# and NO separate .nsis.zip (that was the deprecated v1Compatible format).
# The signed installer IS the updater artifact. Capture its .sig before
# the rename below so the manifest signature matches the uploaded exe.
SIG="${EXE}.sig"
if [[ ! -f "$SIG" ]]; then
echo "::error::NSIS installer signature not found: $SIG"
exit 1
fi
# Rename with _alpha-unsigned marker, keeping the .sig in lockstep so the
# rolling-release archive name and its detached signature stay consistent.
EXE_DIR=$(dirname "$EXE")
EXE_BASE=$(basename "$EXE" .exe)
MARKED_EXE="${EXE_DIR}/${EXE_BASE}_alpha-unsigned.exe"
MARKED_SIG="${MARKED_EXE}.sig"
mv "$EXE" "$MARKED_EXE"
mv "$SIG" "$MARKED_SIG"
echo "exe=$MARKED_EXE" >> "$GITHUB_OUTPUT"
# Find the updater .nsis.zip and .sig
ARCHIVE=$(find "$BUNDLE_DIR/nsis" -name '*.nsis.zip' ! -name '*.sig' -type f | head -1)
SIG="${ARCHIVE}.sig"
if [[ -z "$ARCHIVE" || ! -f "$SIG" ]]; then
echo "::error::NSIS updater archive or signature not found in $BUNDLE_DIR/nsis"
exit 1
fi
echo "archive=$ARCHIVE" >> "$GITHUB_OUTPUT"
echo "archive_name=$(basename "$ARCHIVE")" >> "$GITHUB_OUTPUT"
echo "sig=$SIG" >> "$GITHUB_OUTPUT"
echo "archive=$MARKED_EXE" >> "$GITHUB_OUTPUT"
echo "archive_name=$(basename "$MARKED_EXE")" >> "$GITHUB_OUTPUT"
echo "sig=$MARKED_SIG" >> "$GITHUB_OUTPUT"
- name: Read updater signature
id: read-sig