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.
With routing
Namespace on its own, or in your runner order
Namespace on its own
- Each workflow names a Namespace label, so every job runs on Namespace.
- Your own machines sit idle while Namespace bills you.
- Trying another host means editing every workflow again.
- Each host shows its own job times in its own dashboard.
In your runner order
- Jobs run on your machines first, and on Namespace when your machines are busy.
- GitHub-hosted runners stay as the fallback after Namespace.
- Move Namespace up, down or out from the dashboard. No workflow edits.
- The Performance page compares Namespace's job times with your machines and GitHub-hosted runners.
Setup
How to set up Namespace
-
Set up your Namespace account
Sign up for Namespace and connect it to your GitHub organization.
-
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.
-
Add relays to your jobs
Run
npx relayrunner initin your repo. It adds a relay to each job you pick and keeps the label the job uses today as its fallback.
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
- Namespace docs Namespace dashboard
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. In your repo, add relays to the jobs you want to route
npx relayrunner init -
2. Optionally, turn this computer into a runner
npx relayrunner connect