External CI Runners
The Rust Project mainly runs Continuous Integration (CI) in GitHub Actions. When GitHub Actions do not natively support a target, we use self-hosted runners.
Available software
GitHub Actions self-hosted runners usually do not contain all the software that
is available in GitHub Actions hosted runners (e.g. ubuntu-latest).
If you see a CI failure on a self-hosted runner, check if the software you need is available. If it is not, you can install it in your GitHub Actions workflow.
Policy
If you want to add a new external CI runner, please read our policy first.
Configured external CI runners
This section lists the external CI runners that are configured to run in the CI of the Rust Project.
Here is an explanation of the fields in the list below:
max concurrency: The available number of runners of this type. This determines the maximum number of GitHub Actions jobs that can run on the runner. The concurrency is shared among repositories. If all runners are busy, GitHub Actions will queue the jobs until a runner is available.runs-on: The label(s) that you should use in theruns-onfield of a GitHub Actions workflow to run this runner. To check where a runner is used, search for the label in GitHub Search.repositories: The repositories that are enabled to use the runner. To add your repository to the list, please open a PR to this file. Make sure the workflow you want to run the runner on passeszizmor.contact: The contact information of the person(s) responsible for maintaining the runner. The recommended way to contact them is via Zulip, by opening a new topic in the #t-infra channel and mentioning the contact person(s).
powerpc64-unknown-linux-musl
- max concurrency: 4
runs-on:["self-hosted", "linux", "powerpc64", "musl"]- repositories:
- contact:
- Zulip: Aelin
- Email:
aelin@postmarketos.org(faster response)
ubuntu-2X.04-riscv
runs-on:ubuntu-24.04-riscvfor the Ubuntu 24 runner.ubuntu-26.04-riscvfor the Ubuntu 26 runner.
- repositories:
rustc_codegen_cranelift(enabled, unused)
- documentation
powerpc64le-unknown-linux-gnu
runs-on:ubuntu-24.04-ppc64le- type: IBM runners
s390x-unknown-linux-gnu
This target is available in various external runners.
Canonical runner
runs-on:self-hosted-linux-s390x-resolute-medium-rust- repositories: it works on all repositories, there’s no need to enable it.
- type: Canonical runners.
IBM runner
runs-on:ubuntu-24.04-s390x- type: IBM runners.
Types of runners
This section groups info common to more than one runner.
Canonical runners
- max concurrency: 10
- GitHub App
- Operator Repository
- contact: downtimes are reported in the Canonical Runners downtime Zulip topic
- repositories: the app is installed org-wide, so all repositories can use the runners.
IBM runners
- GitHub App
- repositories:
We can’t install this GitHub App in the rust-lang/rust repository
because the app requires admin permission to run.
See this GitHub issue for more info.
Infrastructure details
- We installed the GitHub App from the rust-lang-owner user account.
- The runners were requested in this and the linked GitHub issues.