← All integrations

Namespace integration

Route jobs between Namespace, your machines and GitHub.

Namespace runs GitHub Actions jobs on runners sized by profile, under your Namespace account. Jobs go to your machines first and to Namespace when they're busy. You change the order from the dashboard, not your workflows.

Get started with GitHub

With routing

Namespace on its own, or in your runner order

Namespace on its own

  1. Each workflow names a Namespace label, so every job runs on Namespace.
  2. Your own machines sit idle while Namespace bills you.
  3. Trying another host means editing every workflow again.
  4. Each host shows its own job times in its own dashboard.

In your runner order

  1. Jobs run on your machines first, and on Namespace when your machines are busy.
  2. GitHub-hosted runners stay as the fallback after Namespace.
  3. Move Namespace up, down or out from the dashboard. No workflow edits.
  4. The Performance page compares Namespace's job times with your machines and GitHub-hosted runners.

Setup

How to set up Namespace

  1. Set up your Namespace account

    Sign up for Namespace and connect it to your GitHub organization.

  2. Add Namespace to your runner order

    On the Router page, put Namespace where you want it. A common order is your machines, then Namespace, then GitHub-hosted.

  3. Add relays to your jobs

    Run npx relayrunner init in your repo. It adds a relay to each job you pick and keeps the label the job uses today as its fallback.

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

The relay

Name a Namespace label in the relay.

The relay answers in about a second and uses no minutes. It returns the label of the first runner in your order that can take the job, and the job runs there.

Read how routing works →

Details

Namespace at a glance

What it is
Hosted runners for GitHub Actions, sized by runner profile.
Labels
namespace-profile-*, nscloud-*
Example
runs-on: namespace-profile-default
Relay input
namespace
Links

See what Namespace billed

Paste a read-only revokable token in Settings → Providers. The dashboard then shows unit minutes per day, and how long each job's instance ran.

Common questions

How is this different from using Namespace directly?

Used directly, every job that names a Namespace label runs on Namespace. In a runner order, jobs go to your own machines first and to Namespace only when they're busy, and you can move Namespace up, down or out from the dashboard without editing workflows.

Do I have to change my workflows to use Namespace?

Once. Run npx relayrunner init in your repo and it adds a relay to each job you pick. After that, you move Namespace up or down in the dashboard.

Which jobs go to Namespace?

Jobs whose relay names a Namespace label, when nothing above Namespace in your runner order is free.

Who bills me for Namespace?

Namespace does. Jobs run under your own Namespace account, so your plan, credits and discounts still apply.

Do public repos run on Namespace?

Yes. Your own machines skip public repos' jobs, but hosted providers like Namespace run them.

Add Namespace to your runner order.

Add relays once. After that, change the order in the dashboard.

  1. 1. In your repo, add relays to the jobs you want to route
    npx relayrunner init
  2. 2. Optionally, turn this computer into a runner
    npx relayrunner connect