Skip to content

VincentZyuApps/mac-test-action-runner

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mac-test-action-runner

mac-test-action-runner

GitHub Actions workflow for temporary SSH sessions on macOS runners, with support for downloading and testing different projects.

Usage

Push a commit containing a specific keyword to the main branch:

1. Empty macOS SSH (no binary download)

git commit --allow-empty -m "start-empty"
git push

doc/images/preview.ssh.github.ci.runner.macos15.arm64.fastfetch.uname-a.sm_vers.arch.png doc/images/preview.ssh.github.ci.runner.macos15.arm64.btop.png doc/images/preview.ssh.github.ci.runner.macos15.arm64.htop.png

2. Download and test winload

git commit --allow-empty -m "start-winload"
git push
  • Automatically downloads the latest winload macOS binary
  • Auto-detects architecture (x86_64 / arm64)
  • Runs ./winload --help after download

3. Download and test dart-flutter-demo

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-pic includes --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.

--dark switches macOS to dark mode before launching the app and taking a screenshot. Screenshot filenames include a _dark suffix.

  • 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.png with --dark)

doc/images/preview.screenshot.github.ci.runner.macos15.arm64.dart_flutter_demo.page0_system_info.png

General

  • All modes start a tmate SSH session
  • SSH command is printed in the workflow logs
  • Type exit mac to end the session
  • Timeout: 10 minutes
  • Runner: macos-latest (ARM64)

Scripts

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

About

GitHub Actions workflow for spinning up temporary macOS SSH sessions on ARM64 runners, aimed at testing some program. for example: https://github.com/VincentZyuApps/winload. another example: https://github.com/VincentZyuApps/dart-flutter-demo

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 100.0%