Choosing Runner Tags
This document introduces the tag type comparison between official managed Runners and self-hosted Runners, as well as two matching rules: full match and default equivalence.
When you need to precisely control on which type of Runner a job runs - specifying operating system, architecture, resource specifications, or custom features (GPU, specific toolchains) - you need to understand the tag matching rules.
Configuration Description
Tag Type Comparison
| Runner Type | Tag Format | Example |
|---|---|---|
| Official Managed | Three-part {os},{arch},{spec} or combined tags | {ubuntu-24,x64,small} |
| Official Managed (Default) | default | default (equivalent to [ubuntu-latest, x64, small]) |
| Self-Hosted | self-hosted + custom tags | [self-hosted, linux, gpu] |
Matching Rules
Rule One: Full Match
All tags in runs-on must be present in the Runner's tag set for it to be considered a match.
# Runner Tag Set: {self-hosted, linux, x64, npu, cann}
# ✅ Match
runs-on: [self-hosted, linux, x64]
# ✅ Match
runs-on: [self-hosted, npu, cann]
# ❌ No Match (missing macos)
runs-on: [self-hosted, pypto]
Rule Two: Default Equivalence
runs-on: default is equivalent to runs-on: [ubuntu-latest, x64, small].