GitHub Actions workflow for temporary SSH sessions on macOS runners, with support for downloading and testing different projects.
Push a commit containing a specific keyword to the main branch:
git commit --allow-empty -m "start-empty"
git pushgit commit --allow-empty -m "start-winload"
git push- Automatically downloads the latest winload macOS binary
- Auto-detects architecture (x86_64 / arm64)
- Runs
./winload --helpafter download
| Commit message | Download | Launch | Screenshot | Artifact | Release |
|---|---|---|---|---|---|
start-dart-flutter-demo |
✅ | ✅ | ✅ (light) | ❌ | ❌ |
start-dart-flutter-demo --dark |
✅ | ✅ | ✅ (dark) | ❌ | ❌ |
start-dart-flutter-demo --artifact-pic |
✅ | ✅ | ✅ (light) | ✅ | ❌ |
start-dart-flutter-demo --artifact-pic --dark |
✅ | ✅ | ✅ (dark) | ✅ | ❌ |
start-dart-flutter-demo --release-pic |
✅ | ✅ | ✅ (light) | ✅ | ✅ (inline) |
start-dart-flutter-demo --release-pic --dark |
✅ | ✅ | ✅ (dark) | ✅ | ✅ (inline) |
--release-picincludes--artifact-pic. Release tag format:screenshot-YYYYMMDD-HHMMSS(dark mode:screenshot_dark-YYYYMMDD-HHMMSS). The screenshot image is embedded inline in the release notes markdown.
--darkswitches macOS to dark mode before launching the app and taking a screenshot. Screenshot filenames include a_darksuffix.
- Automatically downloads the latest dart-flutter-demo macOS DMG
- Mounts DMG → extracts .app to /Applications → removes quarantine → detaches DMG
- Launches the app and takes a screenshot saved to
/tmp/dart_flutter_demo_screenshot.png(or_dark.pngwith--dark)
- All modes start a tmate SSH session
- SSH command is printed in the workflow logs
- Type
exit macto end the session - Timeout: 10 minutes
- Runner:
macos-latest(ARM64)
| Script | Description |
|---|---|
scripts/download_winload.py |
Download winload macOS binary from releases |
scripts/download_dart_flutter_demo.py |
Download dart-flutter-demo DMG and install |



