fix: nsis/portable Windows targets silently overwrote each other #7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/nsis-portable-filename-collision"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Answers the missing-installer mystery: nsis and portable both resolved to the identical filename under the shared artifactName template (upstream's own win.target is zip+msi -- different extensions, so this collision never surfaced there). Whichever target finished second silently overwrote the first every single build.
Confirmed via local reproduction on git.ncwcom.com: both targets logged the same output path during their respective build steps.
Root cause of the missing 'Setup' installer: nsis and portable are CI-only targets (--win nsis portable), not part of upstream's own default win.target ('zip', 'msi' -- different extensions, never collide). The top-level artifactName template was never designed for two same-extension Windows targets running together, so both nsis and portable resolved to the IDENTICAL filename (release/6.2.2/slash-desktop-6.2.2-win-x64.exe). Whichever target finished building second silently clobbered the first on disk -- no installer was ever 'missing', it was being overwritten every single build. Confirmed via a local reproduction on git.ncwcom.com (same Wine cross-build setup as CI): both targets logged the exact same output path during 'building target=nsis file=...' and 'building target=portable file=...'. Fixes: - Added nsis: {artifactName: '...-setup.exe'} and portable: {artifactName: '...-portable.exe'} overrides so each target gets a distinct filename - CI's Save artifacts glob (find release -maxdepth 2 -name '*.exe') also excluded win-unpacked/*.exe -- the internal, non-functional Electron binary stub (afterpack.js's own output name, e.g. Slash.exe) was being swept up by that same broad glob and uploaded as if it were a real release asset, alongside the actual installer/portable builds.