Übersicht über von GitHub gehostete Runner
Runner sind die Computer, die Aufträge in einem GitHub Actions-Workflow ausführen. Beispielsweise kann ein Runner Ihr Repository lokal klonen, Testsoftware installieren und dann Befehle ausführen, die Ihren Code auswerten.
GitHub stellt Runner bereit, mit denen Sie Ihre Aufträge ausführen können, oder Sie können auch eigene Runner hosten. Mit Ausnahme von Einzel-CPU-Läufern ist jeder von GitHub gehostete Runner eine neue virtuelle Maschine (VM), die von GitHub gehostet wird. Single-CPU Runner werden in einem Container auf einer freigegebenen VM gehostet – siehe Gehostete Runnerreferenz auf GitHub.
Jedes Runner-Programm kommt mit der Runner-Anwendung und anderen vorinstallierten Tools. GitHub-gehostete Runner sind mit den Betriebssystemen Ubuntu Linux, Windows, oder macOS verfügbar. Wenn Sie einen GitHub-gehosteten Runner verwenden, werden Computerwartung und Upgrades für Sie erledigt.
Du kannst eine der auf GitHub gehosteten Standardrunneroptionen auswählen. Wenn du dich im Plan GitHub Team oder GitHub Enterprise Cloud befindest, kannst du einen Runner mit mehr Kernen oder einen Runner bereitstellen, der von einem GPU-Prozessor unterstützt wird. Diese Computer werden als „größerer Runner“ bezeichnet. Weitere Informationen finden Sie unter Größere Läufer.
Größere Runner unterstützen auch benutzerdefinierte Images, mit denen du eigene vorkonfigurierte VM-Images erstellen und verwalten kannst. Weitere Informationen finden Sie unter "Benutzerdefinierte Bilder".
Die Verwendung von GitHub-hosted runners erfordert einen Netzwerkzugang mit einer Upload- und Download-Geschwindigkeit von mindestens 70 Kilobit pro Sekunde.
Hinweis
Berechtigungsminuten für auf GitHub gehostete Runner sind für verwaltete Benutzerkonten-hosted nicht verfügbar. Enterprise Managed Users, die zu Repositorys in Organisationen beitragen möchten, bei denen sie kein Mitglied sind, können das Organisationsrepository verzweigen und dann einen Pull Request für das Organisationsrepository öffnen. Dadurch werden die Workflows für die auf GitHub gehosteten Runner der Organisation ausgeführt. Weitere Informationen findest du unter Informationen zu Enterprise Managed Users.
Runner-Bilder
GitHub verwaltet unser eigenes Set von VM-Images für unsere Standard-gehosteten Runner. Dazu gehören Images für macOS, x64-Linux und Windows. Die Liste der Images und enthaltenen Tools wird im Repository actions/runner-images verwaltet. Die arm64-Images sind Partnerimages, die im Repository actions/partner-runner-images verwaltet werden.
Vorinstallierte Software für von GitHub bereitgestellte Images
Die Softwaretools, die in den Images enthalten sind, die sich im Besitz von GitHub befinden, werden wöchentlich upgedatet. Der Updatevorgang dauert mehrere Tage, und die Liste der vorinstallierten Software im main-Branch wird nach Abschluss der gesamten Bereitstellung aktualisiert.
Workflowprotokolle enthalten einen Link zu den vorinstallierten Tools für den jeweiligen Runner. Um diese Informationen im Workflowprotokoll zu finden, erweitere den Abschnitt Set up job. Erweiter unter diesem Abschnitt den Abschnitt Runner Image. Der auf Included Software folgende Link beschreibt die vorinstallierten Tools auf dem Runner, der den Workflow ausgeführt hat.
Weitere Informationen finden Sie unter Anzeigen des Ausführungsverlaufs eines Workflows.
GitHub-gehostete Runner enthalten zusätzlich zu den oben aufgeführten Paketen die standardmäßig integrierten Tools des Betriebssystems. Ubuntu- und macOS-Runner umfassen beispielsweise grep, find und which sowie weitere Standardtools.
Sie können auch eine Softwarestückliste (Software bill of materials, SBOM) für jeden Build der Windows- und Ubuntu-Runnerimages anzeigen. Weitere Informationen finden Sie unter Referenz zur sicheren Verwendung.
Es wird empfohlen, Aktionen zu verwenden, um mit der Software zu interagieren, die auf Runnern installiert ist. Dieser Ansatz hat mehrere Vorteile:
- In der Regel bieten Aktionen flexiblere Funktionen wie Versionsauswahl sowie die Möglichkeit, Argumente und Parameter zu übergeben.
- Dies stellt sicher, dass die in Ihrem Workflow verwendeten Toolversionen unabhängig von Softwareupdates gleich bleiben.
Wenn ein Tool vorhanden ist, das Sie anfordern möchten, öffnen Sie ein Issue unter actions/runner-images. Dieses Repository enthält auch Ankündigungen zu allen wichtigen Softwareupdates auf Runnern.
Hinweis
- Du kannst auch zusätzliche Software auf von GitHub gehosteten Runnern installieren. Weitere Informationen findest du unter Anpassen von GitHub-gehosteten Runnern.
- Während die geschachtelte Virtualisierung technisch möglich ist, wenn Runner verwendet werden, wird sie nicht offiziell unterstützt. Jede Verwendung geschachtelter VMs ist experimentell und erfolgt auf eigenes Risiko, wir bieten keine Garantien hinsichtlich Stabilität, Leistung oder Kompatibilität.
Benutzerdefinierte Images
Mit benutzerdefinierten Images können Sie mit einem GitHub-bereitgestellten Basisimage beginnen und Ihr eigenes VM-Image erstellen, das an Ihre Workflowanforderungen angepasst ist. Mit benutzerdefinierten Bildern können Sie:
- Erstellen Sie benutzerdefinierte VM-Images mit der vorhandenen YaML-Syntax des Workflows.
- Vorkonfigurieren von Umgebungen mit genehmigten Tools, Sicherheitspatches und Abhängigkeiten vor dem Starten von Workflows.
- Erstellen Sie konsistente, validierte Basisumgebungen für alle Builds.
Benutzerdefinierte Images können Repositorycode, Containerimages, Binärdateien, Zertifikate und andere Abhängigkeiten enthalten, um eine konsistente Buildumgebung über Workflows hinweg zu erstellen. Dies hilft Ihnen, die Kontrolle über Ihre Lieferkette zu erlangen. Sie tragen dazu bei, die Einrichtungszeit zu reduzieren, die Buildleistung zu verbessern und die Sicherheit zu stärken, indem sie den Angriffsvektor der Oberfläche auf Ihren Bildern reduzieren. Administratoren können auch Richtlinien anwenden, um Imageversionen, Aufbewahrung und Alter zu verwalten, um die Sicherheits- und Complianceanforderungen der Organisation zu erfüllen.
Benutzerdefinierte Bilder können nur mit größeren Läufern verwendet werden und werden mit den gleichen Raten pro Minute wie diese Läufer abgerechnet. Speicher für benutzerdefinierte Images wird über GitHub Actions-Speicher abgerechnet und gemessen. Weitere Informationen zur Abrechnung finden Sie unter Abrechnung für GitHub Actions.
Informationen zu den ersten Schritten mit benutzerdefinierten Bildern finden Sie unter Verwenden von benutzerdefinierten Bildern.
Cloud-Hosts, die von auf GitHub gehosteten Runnern genutzt werden
GitHub hostet Linux- und Windows-Runner auf den -VMs in Microsoft Azure, auf denen die Runneranwendung von GitHub Actions installiert ist. Die auf GitHub gehostete Runner-Anwendung ist ein Fork des Azure Pipelines Agenten. Bei Azure werden eingehende ICMP-Pakete werden für alle virtuellen Maschinen blockiert, so dass die Befehle ping und traceroute möglicherweise nicht funktionieren. GitHub hostet macOS-Runner in Azure-Rechenzentren.
Workflowkontinuität
Wenn GitHub Actions-Dienste vorübergehend nicht verfügbar sind, wird eine Workflowausführung verworfen, wenn sie nicht innerhalb von 30 Minuten nach dem Auslösen in die Warteschlange gestellt wurde. Wenn beispielsweise ein Workflow ausgelöst wird und die GitHub Actions-Dienste für 31 Minuten (oder länger) nicht verfügbar sind, wird die Workflowausführung nicht verarbeitet.
Wenn die Workflowausführung erfolgreich in die Warteschlange eingereiht wurde, aber nicht innerhalb von 45 Minuten von einem GitHub-gehosteten Läufer verarbeitet wurde, wird die Workflowausführung in der Warteschlange verworfen.
Die etc/hosts-Datei.
GitHubgehostete Läufer werden mit einer etc/hosts Datei bereitgestellt, die den Netzwerkzugriff auf verschiedene Kryptowährungs-Miningpools und bösartige Websites blockiert. Hosts wie MiningMadness.com und cpu-pool.com werden an localhost umgeleitet, sodass sie kein erhebliches Sicherheitsrisiko darstellen.