Skip to content

ci: verify-installer speaks Squirrel — the setup exe lives in dist/squirrel-windows, --silent not /S, the versioned app-<ver> folder holds the payload, Update.exe --uninstall - #144

Open
kai-openswarm wants to merge 1 commit into
openswarm-ai:devfrom
kai-openswarm:fix/installer-verifier-squirrel

Conversation

@kai-openswarm

Copy link
Copy Markdown

What

scripts/ci/verify-installer.js still described the NSIS installer while win.target has been Squirrel:

  • it looked for dist/OpenSwarm-Setup-x64.exe (Squirrel writes dist/squirrel-windows/), so the e2e installer job failed at artifact discovery on a clean runner ("no Setup.exe found; build first or pass --setup");
  • it installed with /S, which Squirrel ignores — it opens a UI and waits for a click that never comes;
  • it asserted %LOCALAPPDATA%\Programs\OpenSwarm (Squirrel installs a stub beside a versioned app-<ver>\ under %LOCALAPPDATA%\OpenSwarm);
  • it looked for Uninstall OpenSwarm.exe (Squirrel registers Update.exe --uninstall).

This ports the verifier to the same Squirrel conventions smoke-windows-packaged.yml already uses (--silent, the versioned app folder, Update.exe --uninstall, the release alias in dist/ still accepted). Every check the verifier made is kept: artifact size + PE header, install dir, payload (resources, locales), registry uninstall entry, uninstaller on disk, shortcuts, uninstall removes the app, user data preserved.

Verified

Full --destructive --force run on a GitHub-hosted windows-latest runner against a fresh build:

  • setup found at dist/squirrel-windows/OpenSwarm-Setup-x64.exe (393 MB, valid PE) → --silent install completed → app-1.7.7\OpenSwarm.exe + resources + locales present → uninstall registry entry + Update.exe + desktop shortcut asserted → Update.exe --uninstall removed the app → user data preserved.
  • The one step that still fails there is the inner verify-all --app <installed exe> boot gate: on hosted Windows the packaged app cold-boots well past that gate's budgets (first paint measured at 76–238 s across runs), and verify-all's own packaging-parity check reports "staged on Mac but not Win: mouseclamp, python-env". Both are independent of this port and worth their own look; the verifier itself now does what it says on that runner.

…uirrel-windows, --silent not /S, the versioned app-<ver> folder holds the payload, Update.exe --uninstall

The verifier still described the NSIS installer while win.target has been
Squirrel: it looked for dist/OpenSwarm-Setup-x64.exe (Squirrel writes
dist/squirrel-windows/), installed with /S (which Squirrel ignores, opening a
UI that waits forever), asserted %LOCALAPPDATA%/Programs/OpenSwarm (Squirrel
installs a stub beside app-<ver>/ under %LOCALAPPDATA%/OpenSwarm) and looked
for 'Uninstall OpenSwarm.exe' (Squirrel registers Update.exe --uninstall). The
e2e installer job failed at the first of these on a clean runner. Same
conventions smoke-windows-packaged.yml already uses; every check the verifier
made is kept.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

1 participant