[llvm] [CI] Add documentation for self-hosted runners (PR #211622)
Aiden Grossman via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 23 13:56:07 PDT 2026
================
@@ -0,0 +1,99 @@
+===========================
+LLVM GitHub Actions Runners
+===========================
+
+.. contents::
+ :local:
+
+Overview
+========
+
+LLVM's GitHub Actions workflows run on two kinds of runners:
+
+- *GitHub-hosted runners*, which GitHub provisions on demand for each job.
+- *Self-hosted runners*, which are machines provided to the LLVM project and
+ registered with the repository. They are used where GitHub-hosted runners are
+ not sufficient, for example to provide hardware or operating systems that
+ GitHub does not offer, or to provide additional capacity.
+
+Self-hosted runners are organized into sets, and a job selects a set through its
+``runs-on`` labels. Since these machines are shared across the project and are
+available only in limited numbers, workflows that target them should be written
+to use them efficiently and to avoid consuming capacity unnecessarily.
+
+The rest of this document describes the self-hosted runner sets and the
+constraints to keep in mind when writing workflows that target them.
+
+Self-Hosted Linux Runners
+=========================
+
+This section is a work in progress.
+
+Self-Hosted Windows Runners
+===========================
+
+This section is a work in progress.
+
+Self-Hosted macOS Runners
+=========================
+
+Self-hosted runners running macOS arm64 are provided by Apple. These runners can be targeted
+with the following expression ``runs-on: ["self-hosted", "macOS", "apple-runners"]``. Since
+these runners have a limited capacity, please contact the infrastructure team before adding
+new jobs that target these runners.
+
+System Version and Architecture
+-------------------------------
+
+All self-hosted macOS runners run the same version of macOS. However, that version
+is determined by the image used on the runners, which is not controllable from
+the workflow file. These runners will be kept at a reasonably recent version of
+macOS, however jobs running on that infrastructure should not make assumptions
+about the macOS version and should strive to be robust to OS version changes.
+
+All the self-hosted macOS runners run on Apple Silicon, however the exact chip
----------------
boomanaiden154 wrote:
This is also important regardless. We pin the premerge CI jobs to specific uarches for consistent performance.
I'm also assuming this is why the core count varies between different jobs on this runner set.
https://github.com/llvm/llvm-project/pull/211622
More information about the llvm-commits
mailing list