Relay

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.

relay-linux-small
relay-linux-medium
relay-linux-large
relay-macos-medium
relay-windows-medium
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 test

macOS 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 test

Windows runners

Run .NET, PowerShell, and native Windows test suites.

jobs:
  windows-test:
    runs-on: relay-windows-medium
    steps:
      - run: dotnet test

ARM64 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 --release

Self-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,docker

Configure labels

Labels route jobs to the right pool:

relay.yaml
jobs:
  integration:
    runs-on: [self-hosted, linux, docker]
    steps:
      - run: docker compose up -d
      - run: npm run test:integration

Monitor 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 timeout on long-running integration jobs
  • Scale self-hosted pools with auto-scaling groups or Relay's agent orchestration
Runners ready

On this page