jobs.<job_id>.runs-on to define the type of machine to run the job on. The machine can be either a GitHub-hosted runner or a self-hosted runner. You can provide
runs-on as a single string or as an array of strings. If you specify an array of strings, your workflow will run on a self-hosted runner whose labels match all of the specified
runs-on values, if available. If you would like to run your workflow on multiple machines, use
|Windows Server 2022||
|Windows Server 2019||
||Ubuntu 22.04 is currently in public beta.|
|macOS Monterey 12||
||macOS 12 is currently in public beta.|
|macOS Big Sur 11||
|macOS Catalina 10.15||
-latest virtual environments are the latest stable images that GitHub provides, and might not be the most recent version of the operating system available from the operating system vendor.
Note: Beta and Deprecated Images are provided "as-is", "with all faults" and "as available" and are excluded from the service level agreement and warranty. Beta Images may not be covered by customer support.
All self-hosted runners have the
self-hosted label. Using only this label will select any self-hosted runner. To select runners that meet certain criteria, such as operating system or architecture, we recommend providing an array of labels that begins with
self-hosted (this must be listed first) and then includes additional labels as needed. When you specify an array of labels, jobs will be queued on runners that have all the labels that you specify.
self-hosted label is not required, we strongly recommend specifying it when using self-hosted runners to ensure that your job does not unintentionally specify any current or future GitHub-hosted runners.
runs-on: [self-hosted, linux]