feat: tart macOS vm's as job container (#33)

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.

`add-path` is probably broken
This commit is contained in:
ChristopherHX
2025-01-29 17:27:04 +01:00
committed by GitHub
parent 592dc4bf2c
commit 677e073448
10 changed files with 832 additions and 26 deletions

View File

@@ -655,6 +655,9 @@ func (rc *RunContext) startContainer() common.Executor {
if rc.IsHostEnv(ctx) {
return rc.startHostEnvironment()(ctx)
}
if rc.IsTartEnv(ctx) {
return rc.startTartEnvironment()(ctx)
}
return rc.startJobContainer()(ctx)
}
}
@@ -665,6 +668,12 @@ func (rc *RunContext) IsHostEnv(ctx context.Context) bool {
return image == "" && strings.EqualFold(platform, "-self-hosted")
}
func (rc *RunContext) IsTartEnv(ctx context.Context) bool {
platform := rc.runsOnImage(ctx)
image := rc.containerImage(ctx)
return image == "" && strings.HasPrefix(platform, "tart://")
}
func (rc *RunContext) stopContainer() common.Executor {
return rc.stopJobContainer()
}