Hinweis
Auf GitHub Enterprise Server gehostete Runner werden aktuell nicht auf GitHub unterstützt.
Übersicht
Verwende jobs.<job_id>.runs-on zum Definieren des Computertyps, auf dem der Auftrag ausgeführt werden soll.
-
Die Zielmaschine kann ein selbstgehosteter Runner sein.
-
Du kannst Runner anhand der ihnen zugewiesenen Labels, ihrer Gruppenmitgliedschaft oder einer Kombination daraus gezielt auswählen.
-
Du kannst
runs-onals Folgendes angeben:- eine einzelne Zeichenfolge
- Eine einzelne Variable, die eine Zeichenfolge enthält
- Ein Array aus Zeichenfolgen, Variablen mit Zeichenfolgen oder eine Kombination aus beiden
- Ein
key: value-Paar mit den Tastengroupoderlabels
-
Wenn du ein Array von Zeichenfolgen oder Variablen angibst, wird dein Workflow auf jedem Runner ausgeführt, der allen angegebenen
runs-on-Werten entspricht. Hier wird der Job beispielsweise nur auf einem selbstgehosteten Runner ausgeführt, der die Labelslinux,x64undgpuhat:runs-on: [self-hosted, linux, x64, gpu]Weitere Informationen findest du unter Auswählen von selbstgehosteten Runnern.
-
Du kannst Zeichenfolgen und Variablen in einem Array mischen. Beispiel:
on: workflow_dispatch: inputs: chosen-os: required: true type: choice options: - Ubuntu - macOS jobs: test: runs-on: [self-hosted, "${{ inputs.chosen-os }}"] steps: - run: echo Hello world! -
Wenn du deinen Workflow auf mehreren Computern ausführen möchtest, verwende
jobs.<job_id>.strategy.
Hinweis
Bei einfachen Zeichenfolgen wie self-hosted sind Anführungszeichen nicht erforderlich, aber für Ausdrücke wie "${{ inputs.chosen-os }}" sind sie erforderlich.
Auswählen von GitHub-gehosteten Runnern
Hinweis
Auf GitHub Enterprise Server gehostete Runner werden aktuell nicht auf GitHub unterstützt.
Auswählen von selbstgehosteten Runnern
Um einen selbstgehosteten Runner für deinen Auftrag anzugeben, konfiguriere runs-on in deiner Workflowdatei mit Bezeichnungen selbstgehosteter Runner.
Selbstgehostete Runner können möglicherweise das Label self-hosted tragen. Beim Einrichten eines selbstgehosteten Runners wird standardmäßig die Kennzeichnung self-hosted hinzugefügt. Du kannst das Flag --no-default-labels übergeben, um zu verhindern, dass die selbstgehostete Bezeichnung angewendet wird. Mit Bezeichnungen können Optionen zur Zielgruppenadressierung für Runner erstellt werden, z. B. im Hinblick auf Betriebssystem oder Architektur. Wir empfehlen die Angabe eines Arrays von Bezeichnungen, das mit self-hosted beginnt (diese Bezeichnung muss als Erstes aufgeführt werden) und dann nach Bedarf weitere Bezeichnungen einschließt. Wenn du ein Array von Bezeichnungen angibst, werden Aufträge in die Warteschlange von Runnern eingereiht, die alle von dir angegebenen Bezeichnungen aufweisen.
Hinweis
Actions Runner Controller unterstützt das self-hosted Etikett nicht.
Beispiel: Verwenden von Bezeichnungen für die Auswahl von Runnern
runs-on: [self-hosted, linux]
Weitere Informationen findest du unter Selbstgehosteten Runnern und Verwenden von selbstgehosteten Runnern in einem Workflow.
Auswählen von Runnern in einer Gruppe
Du kannst runs-on verwenden, um Runnergruppen als Ziel zu verwenden, sodass der Auftrag auf jedem Runner ausgeführt wird, der Mitglied dieser Gruppe ist. Für eine präzisere Steuerung kannst du auch Runnergruppen mit Bezeichnungen kombinieren.
Beispiel: Verwenden von Gruppen zum Steuern, wo Aufträge ausgeführt werden
In diesem Beispiel wurden Läufer zu einer Gruppe namens build-runnershinzugefügt. Der runs-on-Schlüssel sendet den Auftrag an einen beliebigen verfügbaren Runner in der Gruppe build-runners:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: build-runners
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
Beispiel: Kombinieren von Gruppen und Bezeichnungen
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 kombiniert der Schlüssel runs-on``group und labels, sodass der Job an einen beliebigen verfügbaren Runner in der Gruppe weitergeleitet wird, der auch über ein passendes Label verfügt:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-24.04-16core
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
Beispiel: Verwenden von Präfixen zum Unterscheiden von Runnergruppen
Wenn du beispielsweise eine Runnergruppe mit dem Namen my-group in der Organisation und eine andere Gruppe mit dem Namen my-group im Unternehmen hast, kannst du deine Workflowdatei aktualisieren, sodass org/my-group oder ent/my-group verwendet wird, um zwischen den beiden Gruppen zu unterscheiden.
Verwenden von org/:
runs-on:
group: org/my-group
labels: [ self-hosted, label-1 ]
Verwenden von ent/:
runs-on:
group: ent/my-group
labels: [ self-hosted, label-1 ]