act icon indicating copy to clipboard operation
act copied to clipboard

feat: tart macOS vm's as job container

Open ChristopherHX opened this issue 1 year ago • 7 comments

adds the tart:// protocol to platform mapping

e.g. -P macos-14=tart://ghcr.io/cirruslabs/macos-sonoma-base:latest if you have a mac.

I have written the code in a payed dedicated host machine that is now deallocated, expenses satisfied by sponsoring of my other act based project while I don't see anything here, as I don't own a mac.

add-path is probably broken, but I ignore the fact as of now.

ChristopherHX avatar Aug 24 '24 12:08 ChristopherHX

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time
✅ EDITORCONFIG editorconfig-checker 10 0 0.03s
✅ REPOSITORY gitleaks yes no 2.35s
✅ REPOSITORY git_diff yes no 0.01s
✅ REPOSITORY grype yes no 8.51s
✅ REPOSITORY secretlint yes no 1.09s
✅ REPOSITORY trivy-sbom yes no 0.11s
✅ REPOSITORY trufflehog yes no 4.46s

See detailed report in MegaLinter reports Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security

github-actions[bot] avatar Aug 24 '24 12:08 github-actions[bot]

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 75.07%. Comparing base (5a80a04) to head (706746e). Report is 140 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #2434       +/-   ##
===========================================
+ Coverage   61.56%   75.07%   +13.51%     
===========================================
  Files          53       63       +10     
  Lines        9002    10019     +1017     
===========================================
+ Hits         5542     7522     +1980     
+ Misses       3020     1935     -1085     
- Partials      440      562      +122     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Aug 24 '24 12:08 codecov[bot]

Just starting to test this out and it looks good on first pass. testing on a mac m1 mbp

if the gh action step fails, the container is left in a running state.

if the container fails to start (say 2 vm limit is reached), the container is left in a stopped state.

I've been using ssh, with tart / parallels / qemu to run jobs with -P ${PLATFORM}=-self-hosted on windows/macos/linux vms for the last year (https://gist.github.com/YOU54F/3ac099e54e48a31a69ac2d671aa878f6 / https://gist.github.com/YOU54F/789c53ae8380a1f90325952615635f8a )

I had a play with your runner.server & github-act-runner to build gh actions in my homelab with a set of vm's on a few diff machines. Cheers for your work

YOU54F avatar Sep 05 '24 10:09 YOU54F

if the gh action step fails, the container is left in a running state.

Does --rm change anything here? Act has a feature for docker containers to keep them running if a step fails so you can debug, but reusing the vm has not been working in my testing..

I had a play with your runner.server & github-act-runner to build gh actions in my homelab with a set of vm's on a few diff machines.

Yeah I have written and use my runner.server prog exactly for such a use case, but mostly with actions/runner as the actual runner.

ChristopherHX avatar Sep 05 '24 19:09 ChristopherHX

I'm seeing not test coverage

This requires a self-hosted runner, macos-14 github runner cannot be used due to running already in a Virtual Machine.

Or stubbing tart, but then do we really know if tart works? I wanted in the past to have a tart emulator that fakes creating VM, but didn't find anything,

This is not like intel macOS with nested virtualization... :(.

ChristopherHX avatar Oct 19 '24 07:10 ChristopherHX

@ChristopherHX this pull request has failed checks 🛠

mergify[bot] avatar Oct 20 '24 10:10 mergify[bot]

@ChristopherHX this pull request has failed checks 🛠

mergify[bot] avatar Oct 20 '24 13:10 mergify[bot]

Added a test for the error caused by using the tart mapping in linux where it is not supported, now coverage is green.

We have a coverage collection problem for platforms outside of linux anyway.

ChristopherHX avatar Oct 26 '24 09:10 ChristopherHX

Merge impossible, due to lack of interest.

ChristopherHX avatar Dec 29 '24 16:12 ChristopherHX