Runners
Run pipelines on Relay cloud runners or self-hosted agents across Linux, macOS, Windows, and ARM.
Runner types
Relay supports managed cloud runners and self-hosted agents. Pick a target with runs-on in relay.yaml.
Cloud runners
Managed runners require no setup. Relay provisions ephemeral VMs for each job.
Linux runners
Default choice for most CI workloads. Available sizes from 2 vCPU / 8 GB to 8 vCPU / 32 GB.
jobs:
test:
runs-on: relay-linux-medium
steps:
- run: npm testmacOS runners
Use for Xcode builds, iOS signing, and Apple Silicon–specific tests.
jobs:
ios-build:
runs-on: relay-macos-medium
steps:
- run: xcodebuild -scheme App testWindows runners
Run .NET, PowerShell, and native Windows test suites.
jobs:
windows-test:
runs-on: relay-windows-medium
steps:
- run: dotnet testARM64 runners
Cloud and self-hosted ARM64 targets for embedded, mobile, and cost-efficient builds.
jobs:
arm-build:
runs-on: relay-linux-arm64-medium
steps:
- run: cargo build --releaseSelf-hosted runners
Register agents in your network, VPC, or on bare metal for compliance or specialized hardware.
Install the agent
Download and install the Relay agent on your machine:
curl -fsSL https://get.relay.dev/agent | bash
relay-agent register --org northline --labels gpu,dockerConfigure labels
Labels route jobs to the right pool:
jobs:
integration:
runs-on: [self-hosted, linux, docker]
steps:
- run: docker compose up -d
- run: npm run test:integrationMonitor health
View agent status in Settings → Runners. Stale agents are marked offline after 5 minutes without a heartbeat.
Runner configuration
Prop
Type
OIDC and secrets on runners
Self-hosted and cloud runners receive short-lived OIDC tokens for cloud deploys. Mount organization secrets without exposing them in logs:
jobs:
deploy:
runs-on: self-hosted-linux
permissions:
id-token: write
steps:
- uses: relay/aws-oidc@v1
with:
role-to-assume: arn:aws:iam::123456789012:role/RelayDeploy
- run: ./scripts/deploy.sh
env:
API_KEY: ${{ secrets.STAGING_API_KEY }}Best Practices
Important: Pin self-hosted agents to a version channel and rotate registration tokens regularly.
- Use cloud runners for bursty PR builds; reserve self-hosted for GPU or air-gapped workloads
- Apply labels for OS, architecture, and capability (e.g.
docker,k8s) - Set
timeouton long-running integration jobs - Scale self-hosted pools with auto-scaling groups or Relay's agent orchestration