Hinweis
Auf GitHub gehostete Runner werden aktuell nicht auf GitHub Enterprise Server unterstützt.
Standard-Labels verwenden, um Jobs zu lenken
Ein selbst-gehosteter Runner erhält automatisch bestimmte Labels, wenn er zu GitHub Actions hinzugefügt wird. Diese werden verwendet, um das Betriebssystem und die Hardwareplattform anzuzeigen:
self-hosted
: Standardbezeichnung, die auf selbst gehostete Runner angewendet wird.linux
,windows
odermacOS
: Wird je nach Betriebssystem des Runners angewendet.x64
,ARM
oderARM64
: Wird je nach Hardwarearchitektur angewendet.
Du kannst die YAML deines Workflows verwenden, um Aufträge an eine Kombination dieser Bezeichnungen zu senden. In diesem Beispiel ist ein selbst-gehosteter Runner, der allen drei Labels entspricht, berechtigt, den Job auszuführen:
runs-on: [self-hosted, linux, ARM64]
self-hosted
– Auftrag auf einem selbstgehosteten Runner ausführen.linux
– Nur Linux-basierten Runner verwenden.ARM64
– Nur auf ARM64-Hardware basierenden Runner verwenden.
Wenn Du individuelle selbst gehostete Runner ohne die Standardbezeichnungen erstellen möchtest, übergib beim Erstellen des Runners das --no-default-labels
-Flag. Actions Runner Controller unterstützt keine mehrfachen Bezeichnungen.
Benutzerdefinierte Labels verwenden, um Jobs zu lenken
Du kannst jederzeit eigene Bezeichnungen erstellen und deinen selbstgehosteten Runnern zuordnen. Mit benutzerdefinierten Bezeichnungen kannst du Aufträge an bestimmte Typen von selbstgehosteten Runnern senden, je nachdem, welche Bezeichnungen sie haben.
Wenn du z. B. einen Auftrag hast, der einen bestimmten Typ von Grafikhardware erfordert, kannst du eine benutzerdefinierte Bezeichnung mit dem Namen gpu
erstellen und den Runnern zuordnen, auf denen diese Hardware installiert ist. Ein selbst-gehosteter Runner, der allen zugewiesenen Labels entspricht, ist dann berechtigt, den Job auszuführen.
Dieses Beispiel zeigt einen Job, der Standard- und benutzerdefinierte Labels kombiniert:
runs-on: [self-hosted, linux, x64, gpu]
self-hosted
– Auftrag auf einem selbstgehosteten Runner ausführen.linux
– Nur Linux-basierten Runner verwenden.x64
– Nur auf x64-Hardware basierenden Runner verwenden.gpu
– Diese benutzerdefinierte Bezeichnung wurde manuell selbstgehosteten Runnern zugewiesen, auf denen die GPU-Hardware installiert ist.
Diese Bezeichnungen funktionieren kumulativ. Ein selbstgehosteter Runner muss also alle vier Bezeichnungen aufweisen, um den Auftrag verarbeiten zu können.
Verwenden von Gruppen zum Lenken von Aufträgen
In diesem Beispiel wurden Ubuntu-Runner zu einer Gruppe namens ubuntu-runners
hinzugefügt. Der runs-on
-Schlüssel sendet den Auftrag an einen beliebigen verfügbaren Runner in der Gruppe ubuntu-runners
:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
Verwenden von Bezeichnungen und Gruppen zum Lenken von Aufträgen
Wenn du Gruppen und Bezeichnungen kombinierst, muss der Runner beide Anforderungen erfüllen, um zum Ausführen des Auftrags berechtigt zu sein.
In diesem Beispiel wird eine Runnergruppe namens ubuntu-runners
mit Ubuntu-Runnern aufgefüllt, denen zudem die Bezeichnung ubuntu-20.04-16core
zugewiesen wurde. Der runs-on
-Schlüssel kombiniert group
und labels
, sodass der Auftrag an einen beliebigen verfügbaren Runner innerhalb der Gruppe weitergeleitet wird, der auch eine übereinstimmende Bezeichnung aufweist:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-20.04-16core
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v