Merge nucleic/vivid-glass-urchin-xoym into main
This commit is contained in:
@@ -51,17 +51,20 @@ were killed uncleanly, so the Gitea runner list does not accumulate dead entries
|
||||
- **Gitea 1.25 or newer** (1.26+ recommended). 1.25 added the admin jobs API with the `labels`
|
||||
field this daemon depends on.
|
||||
- A code-signed app bundle. The binary must carry the `com.apple.security.virtualization`
|
||||
entitlement; ad-hoc signing (`codesign -s -`) is sufficient, so no paid Apple developer account
|
||||
is required.
|
||||
entitlement, which is not a restricted entitlement — ad-hoc signing (`codesign -s -`) grants it,
|
||||
so the runner *works* with no Apple developer account. A **Developer ID Application** certificate
|
||||
is nonetheless recommended: it anchors the bundle's code identity to your team, which is what
|
||||
keeps a macOS Local Network grant alive across rebuilds. See
|
||||
[Code signing](docs/setup.md#code-signing).
|
||||
|
||||
## Quickstart
|
||||
|
||||
```sh
|
||||
git clone <this repo> && cd gitea-macos-runner
|
||||
|
||||
# Build, bundle (binary + Resources + Info.plist), ad-hoc sign with the
|
||||
# virtualization entitlement, then copy to ~/Applications and symlink the CLI
|
||||
# into /usr/local/bin.
|
||||
# Build, bundle (binary + Resources + Info.plist), sign with the virtualization
|
||||
# entitlement (Developer ID if a matching certificate is in the keychain, ad-hoc
|
||||
# otherwise), then copy to ~/Applications and symlink the CLI into /usr/local/bin.
|
||||
make install # = make build bundle sign, then the install step
|
||||
|
||||
# Write a starter config to ~/.config/gitea-macos-runner/config.json
|
||||
@@ -145,7 +148,7 @@ Every subcommand accepts the global options `--config PATH` (`-c`, default
|
||||
| `image delete NAME [--force]` | Delete a base image and its disk. `--force` (`-f`) skips the confirmation prompt. |
|
||||
| `vm boot [--image NAME] [--slot N] [--keep]` | Clone an image, boot it, print its IP, and wait for Ctrl-C. `--slot` picks which persistent per-slot MAC to use (default `0`); `--keep` leaves the clone on disk. |
|
||||
| `vm list` | List ephemeral VM clones on disk. |
|
||||
| `service install [--executable PATH]` | Write and load `~/Library/LaunchAgents/xyz.blakeslee.gitea-macos-runner.plist`. |
|
||||
| `service install [--executable PATH]` | Write and load `~/Library/LaunchAgents/xyz.blakeslee.gitea-macos-vm-orchestrator.plist`. Also evicts any agent left behind under a previous label. |
|
||||
| `service uninstall` | Unload the LaunchAgent and remove its plist. |
|
||||
| `service status` | Report LaunchAgent installation and run state. |
|
||||
| `doctor [--json] [--no-fail]` | Preflight checks. `--json` emits machine-readable results; `--no-fail` exits zero even when checks fail. |
|
||||
|
||||
Reference in New Issue
Block a user