Skip to content

Quickstart

This is the shortest poll-mode path for one Mac and one repository. Install the controller first with Installation.

1. Create a minimal config

Create config.yaml:

github:
  token: YOUR_GITHUB_PAT
  owner: YOUR_GITHUB_OWNER
  repository: YOUR_REPOSITORY

jeballto:
  base_url: http://127.0.0.1:8011/v1

controller:
  mode: poll
  poll_interval: 10s
  webhook_listen: :9090

labels:
  jeballto-xcode26:
    image: ghcr.io/jeballto/macos-ci:xcode-26
    lifetime_seconds: 7200

2. Make the workflow use the same label

name: test-jeballto

on:
  workflow_dispatch:

jobs:
  test:
    runs-on: jeballto-xcode26
    steps:
      - uses: actions/checkout@v5
      - run: sw_vers
      - run: xcodebuild -version

3. Start the controller

jeballto-actions-runner --config config.yaml --log-level debug

Leave that process running.

4. Trigger the workflow

Open the repository in GitHub and manually run the workflow from the Actions tab.

5. Confirm the lifecycle

You should see:

  1. Queued job detected.
  2. VM created and started.
  3. SSH enabled.
  4. Actions runner launched inside the VM.
  5. Job moves from queued to running.
  6. VM deleted after job completion.

Fast failure checks live in Troubleshooting.