ci: add nightly smoke tests for cross-OS download validation#2
Conversation
Runs daily at 6am UTC to verify GitHub Release binaries and npm package install correctly and render the welcome screen on Linux, macOS, and Windows.
Review Summary by QodoAdd nightly smoke tests for cross-OS binary validation
WalkthroughsDescription• Adds nightly CI workflow for cross-OS smoke testing • Tests GitHub Release binary downloads on Linux, macOS, Windows • Validates welcome screen renders with expected content • Tests npm package installation path on all platforms Diagramflowchart LR
A["Nightly Schedule<br/>or Manual Trigger"] --> B["Get Latest<br/>Release Tag"]
B --> C["Map OS/Arch<br/>to Archive Name"]
C --> D["Download<br/>Release Archive"]
D --> E["Extract Binary"]
E --> F["Run Smoke Tests"]
F --> G["Test npm<br/>Installation"]
G --> H["Verify Output<br/>on All Platforms"]
File Changes1. .github/workflows/smoke.yml
|
Code Review by Qodo
1.
|
There was a problem hiding this comment.
Pull request overview
Adds a new scheduled GitHub Actions workflow to run nightly cross-OS smoke tests validating both the latest GitHub Release binary and the npm install -g @aitutor/cli installation path.
Changes:
- Introduces a nightly (
cron) + manual (workflow_dispatch) “Smoke Tests” workflow. - Downloads and runs the latest GitHub Release artifact on Linux/macOS/Windows with basic output/no-crash validation.
- Installs the CLI via npm on all three platforms and performs a similar smoke check.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Replace macOS `timeout` with `perl -e 'alarm 5; exec @argv'` (timeout is not available on macOS by default) - Use PowerShell `Expand-Archive` for Windows zip extraction instead of `unzip` - Add default `*)` cases with error messages for OS/arch mapping - Add `set -euo pipefail` to the mapping step
BSD sed (macOS) does not support \x1b hex escapes, so ANSI code stripping would silently fail. Switch all sed calls to perl -pe which handles \e portably on both Linux and macOS.
Summary
npm install -g @aitutor/clipath on all three platformsscriptfor PTY capture on Linux/macOS; verifies no-crash on Windowsworkflow_dispatchTest plan
workflow_dispatchand verify all 3 OS jobs pass