Skip to main content

Ausführen von Aufträgen auf größeren Runnern

Sie können Ihre Workflows beschleunigen, indem Sie sie so konfigurieren, dass sie auf größerer Runner ausgeführt werden.

Wer kann dieses Feature verwenden?

Größerer Runner sind nur für Organisationen und Unternehmen verfügbar, die GitHub Team- oder GitHub Enterprise Cloud-Tarife nutzen.

Platform navigation

Ausführen von Aufträgen in Ihrem Runner

Sobald dein Runnertyp definiert wurde, kannst du deine Workflow-YAML-Dateien aktualisieren, um Aufträge zur Verarbeitung an deine neu erstellten Runnerinstanzen zu senden. Du kannst Runnergruppen oder Bezeichnungen verwenden, um festzulegen, wo deine Aufträge ausgeführt werden.

Hinweis: Größerer Runner wird automatisch eine Standardbezeichnung zugewiesen, die dem Runnernamen entspricht. Du kannst größerer Runnern keine benutzerdefinierten Bezeichnungen hinzufügen, aber du kannst die Standardbezeichnungen oder die Runnergruppe verwenden, um Aufträge an bestimmte Runnertypen zu senden.

Nur Besitzer- oder Administratorkonten können die Runnereinstellungen einsehen. Benutzer ohne Administratorrechte können sich an den Organisationsbesitzer wenden, um herauszufinden, welche Runner aktiviert sind. Dein Organisationsbesitzer kann neue Runner und Runnergruppen erstellen sowie Berechtigungen konfigurieren, um festzulegen, welche Repositorys auf eine Runnergruppe zugreifen können. Weitere Informationen findest du unter Verwalten größerer Runner.

Sobald dein Runnertyp definiert wurde, kannst du deine Workflow-YAML-Dateien aktualisieren, um Aufträge zur Verarbeitung an deine neu erstellten Runnerinstanzen zu senden. Du kannst Runnergruppen oder Bezeichnungen verwenden, um festzulegen, wo deine Aufträge ausgeführt werden.

Hinweis: Größerer Runner wird automatisch eine Standardbezeichnung zugewiesen, die dem Runnernamen entspricht. Du kannst größerer Runnern keine benutzerdefinierten Bezeichnungen hinzufügen, aber du kannst die Standardbezeichnungen oder die Runnergruppe verwenden, um Aufträge an bestimmte Runnertypen zu senden.

Nur Besitzer- oder Administratorkonten können die Runnereinstellungen einsehen. Benutzer ohne Administratorrechte können sich an den Organisationsbesitzer wenden, um herauszufinden, welche Runner aktiviert sind. Dein Organisationsbesitzer kann neue Runner und Runnergruppen erstellen sowie Berechtigungen konfigurieren, um festzulegen, welche Repositorys auf eine Runnergruppe zugreifen können. Weitere Informationen findest du unter Verwalten größerer Runner.

Sobald Ihr Runnertyp definiert wurde, können Sie Ihre Workflow-YAML-Dateien aktualisieren, um Aufträge zur Verarbeitung an Runnerinstanzen zu senden. Um Aufträge unter macOS größerer Runners auszuführen, aktualisieren Sie den runs-on Schlüssel in Ihren Workflow-YAML-Dateien, um eine der GitHub-definierte Bezeichnungen für macOS-Runner zu verwenden. Weitere Informationen finden Sie unter Verfügbare macOS größerer Runner.

Verfügbare macOSgrößerer Runner

Verwenden Sie die Bezeichnungen in der folgenden Tabelle, um Ihre Workflows auf den entsprechenden macOSgrößerer Runnern auszuführen.

Runner-GrößeAufbauProzessor (CPU)Arbeitsspeicher (RAM)Speicher (SSD)OS (YAML-Workflow-Kennzeichnung)
GroßIntel1230 GB14 GBmacos-latest-large, macos-12-large , macos-13-large [latest] , macos-14-large[Beta]
Extra großarm64 (M1)6 CPU und 8 GPU14 GB14 GBmacos-latest-xlarge, macos-13-xlarge [latest], macos-14-xlarge[Beta]

Hinweis: Für macOSgrößerer Runner verwendet die Runnerbezeichnung -latest das macOS 12-Runnerbild. Für macOS Xlarge verwendet die Runner-Bezeichnung -latest das macOS 13-Runnerbild.

Anzeigen verfügbarer Runner für ein Repository

Wenn Sie repo: write Zugriff auf ein Repository haben, können Sie sich eine Liste der Runner anzeigen lassen, die für das Repository verfügbar sind.

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. Klicke unter dem Namen deines Repositorys auf Aktionen.

    Screenshot: Registerkarten für das Repository „github/docs“. Die Registerkarte „Aktionen“ ist mit einem orangefarbenen Rahmen hervorgehoben.

  3. Klicke auf der linken Randleiste unter dem Abschnitt „Verwaltung“ auf Runner.

  4. Überprüfen Sie die Liste der verfügbaren Runner für das Repository.

  5. Wenn Sie optional die Bezeichnung eines Runners kopieren möchten, um sie in einem Workflow zu verwenden, klicken Sie auf rechts neben dem Runner, und klicken Sie dann auf Bezeichnung kopieren.

Hinweis: Besitzer von Unternehmen und Organisationen mit Berechtigungen zum Erstellen von Runnern haben die Möglichkeit, neue Runner auf dieser Seite zu erstellen. Wenn Sie ein Unternehmens- oder Organisationsbesitzer sind, klicken Sie oben rechts in der Liste der Runner auf Neuer Runner, um dem Repository Runner hinzuzufügen. Weitere Informationen finden Sie unter „Verwalten größerer Runner“ oder Selbst-gehostete Runner hinzufügen.

Verwenden von Gruppen zum Steuern, wo Aufträge ausgeführt werden

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@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Verwenden von Gruppen zum Steuern, wo Aufträge ausgeführt werden

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@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Verwenden von Bezeichnungen zum Steuern, wo Aufträge ausgeführt werden

In diesem Beispiel wird eine Runnergruppe mit Ubuntu 16-Core Runnern aufgefüllt, denen ebenfalls die Bezeichnung ubuntu-20.04-16core zugewiesen wurde. Der Schlüssel runs-on sendet den Auftrag an alle verfügbaren Runner mit einer zutreffenden Bezeichnung:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Verwenden von Bezeichnungen zum Steuern, wo Aufträge ausgeführt werden

In diesem Beispiel wird eine Runnergruppe mit Windows 16-Core Runnern aufgefüllt, denen ebenfalls die Bezeichnung windows-2022-16core zugewiesen wurde. Der Schlüssel runs-on sendet den Auftrag an alle verfügbaren Runner mit einer zutreffenden Bezeichnung:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      labels: windows-2022-16core
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Adressierung von macOS größerer Runners in einem Workflow

Wenn Sie Ihre Workflows unter macOS größerer Runnern ausführen möchten, legen Sie den Wert des Schlüssels runs-on auf eine Bezeichnung fest, die einem macOSgrößerer Runner zugeordnet ist. Eine Liste der macOS größerer Runner-Bezeichnungen finden Sie unter „Verfügbare macOS größerer Runner“.

In diesem Beispiel verwendet der Workflow eine Bezeichnung, die macOS XL-Runnern zugeordnet ist. Dies ist macos-latest-xl -arm64. Der Schlüssel runs-on sendet den Auftrag an alle verfügbaren Runner mit einer zutreffenden Bezeichnung:

name: learn-github-actions-testing
on: [push]
jobs:
  build:
    runs-on: macos-13-xlarge
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

Verwenden von Bezeichnungen und Gruppen zum Steuern, wo Aufträge ausgeführt werden

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@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Verwenden eindeutiger Namen für Runnergruppen

GitHub Actions setzt voraus, dass Runnergruppennamen auf Organisationsebene eindeutig sein müssen. Das bedeutet, dass eine Organisation nicht mehr in der Lage ist, eine Runnergruppe mit demselben Namen wie eine im Unternehmen zu erstellen. Darüber hinaus wird Benutzern ein Warnbanner für alle Runnergruppen angezeigt, die denselben Namen wie eine Gruppe im Unternehmen haben. Die Warnung enthält die Aufforderung, die Organisationsgruppe umzubenennen.

Um Mehrdeutigkeiten zu vermeiden, schlägt ein Workflow fehl, wenn doppelte Runnergruppen in der Organisation und im Unternehmen vorhanden sind. Um dies zu beheben, kannst du entweder eine deiner Runnergruppen in der Organisation oder im Unternehmen umbenennen oder deine Workflowdatei aktualisieren, um dem Namen der Runnergruppe ein Präfix hinzuzufügen:

  • org/ oder organization/
  • ent/ oder enterprise/

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 ]

Verwenden von Bezeichnungen und Gruppen zum Steuern, wo Aufträge ausgeführt werden

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@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Verwenden eindeutiger Namen für Runnergruppen

GitHub Actions setzt voraus, dass Runnergruppennamen auf Organisationsebene eindeutig sein müssen. Das bedeutet, dass eine Organisation nicht mehr in der Lage ist, eine Runnergruppe mit demselben Namen wie eine im Unternehmen zu erstellen. Darüber hinaus wird Benutzern ein Warnbanner für alle Runnergruppen angezeigt, die denselben Namen wie eine Gruppe im Unternehmen haben. Die Warnung enthält die Aufforderung, die Organisationsgruppe umzubenennen.

Um Mehrdeutigkeiten zu vermeiden, schlägt ein Workflow fehl, wenn doppelte Runnergruppen in der Organisation und im Unternehmen vorhanden sind. Um dies zu beheben, kannst du entweder eine deiner Runnergruppen in der Organisation oder im Unternehmen umbenennen oder deine Workflowdatei aktualisieren, um dem Namen der Runnergruppe ein Präfix hinzuzufügen:

  • org/ oder organization/
  • ent/ oder enterprise/

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 ]

Behandeln von Problemen mit größerer Runner

Wenn du feststellst, dass Aufträge, die auf deine größerer Runner abzielen, verzögert sind oder nicht ausgeführt werden, kann es dafür mehrere Gründe geben.

  • Parallelitätseinstellungen: Möglicherweise hast du dein Parallelitätslimit erreicht. Wenn du weitere Aufträge parallel ausführen möchtest, kannst du deine Einstellungen für die automatische Skalierung auf eine größere Anzahl festlegen. Weitere Informationen findest du unter Verwalten größerer Runner.
  • Repositoryberechtigungen: Stelle sicher, dass die entsprechenden Repositoryberechtigungen für deine größerer Runner aktiviert sind. Standardmäßig sind Unternehmensrunner nicht auf Repositoryebene verfügbar und müssen manuell von einemeiner Organisationsadministratorin aktiviert werden. Weitere Informationen findest du unter Verwalten größerer Runner.
  • Abrechnungsinformationen: Du musst über eine gültige Kreditkarte verfügen, um größerer Runner verwenden zu können. Nachdem du eine Kreditkarte mit deinem Konto verknüpft hast, kann es bis zu zehn Minuten dauern, bis du deine größerer Runner verwenden kannst. Weitere Informationen findest du unter Eine Zahlungsmethode hinzufügen oder bearbeiten.
  • Ausgabenlimit: Dein GitHub Actions-Ausgabenlimit muss auf einen Wert größer als 0 festgelegt werden. Weitere Informationen findest du unter Verwalten deines Ausgabenlimits für GitHub Actions.
  • Richtlinie zur fairen Nutzung: GitHub verfügt über eine Richtlinie zur fairen Nutzung, die eine Drosselung von Aufträgen auf der Grundlage verschiedener Faktoren vorsieht, z. B. wie viele Aufträge du ausführst oder wie viele Aufträge in der Gesamtheit der GitHub Actions ausgeführt werden.

Wenn du feststellst, dass Aufträge, die auf deine größerer Runner abzielen, verzögert sind oder nicht ausgeführt werden, kann es dafür mehrere Gründe geben.

  • Parallelitätseinstellungen: Möglicherweise hast du dein Parallelitätslimit erreicht. Wenn du weitere Aufträge parallel ausführen möchtest, kannst du deine Einstellungen für die automatische Skalierung auf eine größere Anzahl festlegen. Weitere Informationen findest du unter Verwalten größerer Runner.
  • Repositoryberechtigungen: Stelle sicher, dass die entsprechenden Repositoryberechtigungen für deine größerer Runner aktiviert sind. Standardmäßig sind Unternehmensrunner nicht auf Repositoryebene verfügbar und müssen manuell von einemeiner Organisationsadministratorin aktiviert werden. Weitere Informationen findest du unter Verwalten größerer Runner.
  • Abrechnungsinformationen: Du musst über eine gültige Kreditkarte verfügen, um größerer Runner verwenden zu können. Nachdem du eine Kreditkarte mit deinem Konto verknüpft hast, kann es bis zu zehn Minuten dauern, bis du deine größerer Runner verwenden kannst. Weitere Informationen findest du unter Eine Zahlungsmethode hinzufügen oder bearbeiten.
  • Ausgabenlimit: Dein GitHub Actions-Ausgabenlimit muss auf einen Wert größer als 0 festgelegt werden. Weitere Informationen findest du unter Verwalten deines Ausgabenlimits für GitHub Actions.
  • Richtlinie zur fairen Nutzung: GitHub verfügt über eine Richtlinie zur fairen Nutzung, die eine Drosselung von Aufträgen auf der Grundlage verschiedener Faktoren vorsieht, z. B. wie viele Aufträge du ausführst oder wie viele Aufträge in der Gesamtheit der GitHub Actions ausgeführt werden.

Da macOS arm64 Node 12 nicht unterstützt, verwenden macOS größerer Runner automatisch Node 16, um alle JavaScript-Aktionen auszuführen, die für Node 12 geschrieben wurden. Einige Communityaktionen sind möglicherweise nicht mit Node 16 kompatibel. Wenn Sie eine Aktion verwenden, die eine andere Node-Version erfordert, müssen Sie möglicherweise eine bestimmte Version zur Laufzeit manuell installieren.