Skip to content

ci: install the NSIS build on a clean Windows runner and smoke-test it - #334

Merged
guan4tou2 merged 2 commits into
mainfrom
ci/packaged-install-smoke
Oct 14, 2026
Merged

guan4tou2 merged 2 commits into
mainfrom
ci/packaged-install-smoke

Conversation

@guan4tou2

Copy link
Copy Markdown
Owner

What

A windows-latest workflow, windows-install-smoke.yml, for the first-install-on-a-clean-machine check that could not be done locally (no Sandbox/Hyper-V here). workflow_dispatch, plus pull_request limited to the paths that can change its result (the workflow, the smoke spec, electron-builder.yml, shell-hook.ps1), so it does not run on every PR.

Steps: build → electron-builder --win nsis → verify:package-resources → assert the runner has no RedLog (registry, ~/.redlog, %APPDATA%\RedLog, install dir) → silent install → assert one Uninstall entry and both shortcuts pointing at the installed exe → launch on the runner's own profile and wait for /api/health → run e2e/packaged-smoke.spec.ts against the installed exe (mitmproxy installed so the HTTP step runs; no WSL distro on the runner, so that step is skipped) → silent uninstall → assert entry, shortcuts and exe are gone, and report anything left in the install dir (fail only past 20 files).

Also updates the "does not exercise" comment in the smoke spec to point here.

Verification

The workflow itself has not run yet when this is opened — it runs on this PR because the workflow file is one of its triggers; the result is in the checks below. Locally:

  • Each PowerShell fragment was checked against a real NSIS install on Windows 11 earlier in this series (silent install/uninstall with a test appId, so the real RedLog on that machine was untouched). One thing that run taught: the Uninstall entry's DisplayName is RedLog 0.18.0, version included, so the workflow matches ^RedLog( |$) rather than RedLog.
  • GUI wizard, driven through Windows UI Automation against the same test installer (the installer follows the system language; this machine is zh-TW): install is four pages — install for all users / only me (defaults to "only me"; "all users" would need elevation), install folder, progress, finish (with a "run RedLog" box, ticked by default); the uninstaller is welcome, progress, finish. After the install walk-through: one HKCU Uninstall entry, Desktop and Start Menu shortcuts pointing at the installed exe. After the uninstall walk-through: registry entry, both shortcuts and the install directory are gone, nothing left over. That walk-through is not part of the workflow — it needs an interactive desktop and a localized UI.
  • typecheck, verify:specs, verify:architecture, verify:i18n clean. npm test: 342 of 343 files passed; the one failure, test/shell-payload-fast.test.ts, got Wsl/Service/0x8007274c (a timeout starting the WSL service) from bash instead of script output, and passes alone (154/154). That is a local WSL start-up timeout, not a code path this change touches.

Refs #226

🤖 Generated with Claude Code

Adds a manual / path-triggered workflow that packages the NSIS installer,
checks the runner has no RedLog on it, silently installs, checks the
Uninstall entry and both shortcuts, launches the app on the runner's own
profile, runs the packaged-app smoke spec against the installed exe, then
uninstalls and checks the entry, shortcuts and exe are gone.

Refs #226

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3d29242c-5bde-4091-ac67-a867ad9fdeb2
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…s for

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@guan4tou2
guan4tou2 merged commit 3d89ffc into main Oct 14, 2026
6 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.

1 participant