Skip to content

relay.yml inputs

Every input and output of the relay, a reusable GitHub Actions workflow.

The relay is a reusable workflow in relayrunner/actions. Add one in front of each job you want routed.

jobs:
relay-test:
uses: relayrunner/actions/.github/workflows/relay.yml@v1
with:
machine: self-hosted
github: ubuntu-latest
test:
needs: relay-test
runs-on: ${{ needs.relay-test.outputs.runner }}

Give one input per provider the job may use. A provider you leave out is never used for this job, even if it’s in your runner order.

Input Default What it is
machine none Comma-separated labels a self-hosted machine must have, all of them. self-hosted accepts any machine. Narrow it with macOS, Linux, ARM64 or X64, such as macOS, ARM64. Ignored for public repos.
github none One GitHub-hosted label, such as ubuntu-latest or macos-latest.
blacksmith none One Blacksmith label, such as blacksmith-4vcpu-ubuntu-2404.
depot none One Depot label, such as depot-ubuntu-24.04.
namespace none One Namespace label, such as namespace-profile-default.
warpbuild none One WarpBuild label, such as warp-ubuntu-latest-x64-2x.
ubicloud none One Ubicloud label, such as ubicloud-standard-2.
runs-on none One RunsOn label, such as runs-on=${{ github.run_id }}/runner=2cpu-linux-x64.
Output What it is
runner The label to put in the next job’s runs-on.
  • The RelayRunner GitHub App is installed on the repo’s owner and connected to a workspace.
  • If your organization limits which actions and reusable workflows can run, allow relayrunner/actions/*.

@v1 gets fixes and new features without breaking changes. See releases.

  • One relay per job. Jobs that share one relay’s output won’t all run. Give each job its own relay.
  • It shows as relay-<job> / RelayRunner in the workflow run, and finishes in about a second.
  • No minutes. The relay runs on runs-on: relayrunner, which needs no runner. Don’t give any runner of your own the relayrunner label, or it may take relays instead.