Unterstützte Runner und Hardwareressourcen
Verschiedene Varianten von GitHubgehosteten Runnern können in öffentlichen und privaten Repositories verwendet werden.
Eine Liste der verfügbaren Runner finden Sie unter:
Auf GitHub gehostete Linux-Runner unterstützen Hardwarebeschleunigung für Android-SDK-Tools, wodurch Android-Tests deutlich schneller ausgeführt werden und weniger Minuten verbrauchen. Weitere Informationen zur Android-Hardwarebeschleunigung finden Sie unter Konfigurieren der Hardwarebeschleunigung für den Android-Emulator in der Dokumentation für Android-Entwickler*innen.
Hinweis
Die -latest Runner-Images sind die neuesten stabilen Images, die GitHub bereitstellt, und entsprechen möglicherweise nicht der neuesten Version des Betriebssystems, die vom Betriebssystemanbieter verfügbar gemacht wird.
Warnung
Beta- und veraltete Images werden „wie besehen“, „mit allen Fehlern“ und „wie verfügbar“ bereitgestellt und sind von der Servicelevelvereinbarung und der Garantie ausgeschlossen. Beta-Images werden möglicherweise nicht vom Kundendienst abgedeckt.
Standard-GitHub gehosteter Runner für öffentliche Repositories
Für öffentliche Repositories werden Jobs, die die in der folgenden Tabelle aufgeführten Kennzeichnungen für Workflows verwenden, mit den entsprechenden Spezifikationen ausgeführt. 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. Die Nutzung der standardmäßig GitHub-gehosteten Runner ist kostenlos und unbegrenzt in öffentlichen Repositories.
| Virtueller Computer/Container | Prozessor (CPU) | Speicher (RAM) | Speicher (SSD) | Architektur | Workflow Bezeichnung |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 4 | 16 GB | 14 GB | x64 |
|
Standard GitHub-gehostete Runner für private Repositories
Bei privaten Repositorys werden Aufträge, die die in der folgenden Tabelle gezeigten Workflowbezeichnungen verwenden, auf virtuellen Computern mit den zugehörigen Spezifikationen ausgeführt. Diese Runner nutzen das Kontingent an Freiminuten Ihres GitHub-Kontos und werden dann zu den Tarifen pro Minute in Rechnung gestellt. Weitere Informationen findest du unter Actions Runner Preise.
| Virtuelle Maschine | Prozessor (CPU) | Speicher (RAM) | Speicher (SSD) | Architektur | Workflow Bezeichnung |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 2 | 8 GB | 14 GB | x64 |
|
Workflowprotokolle listen den Runner auf, der zum Ausführen eines Auftrags verwendet wird. Weitere Informationen finden Sie unter Anzeigen des Ausführungsverlaufs eines Workflows.
Einschränkungen für arm64 macOS-Runner
- Alle Aktionen, die von GitHub bereitgestellt werden, sind mit arm64 GitHub-gehosteten Runnern kompatibel. Communityaktionen sind jedoch möglicherweise nicht mit arm64 kompatibel und müssen zur Laufzeit manuell installiert werden.
- Die geschachtelte Virtualisierung wird aufgrund der Einschränkung des Apples Virtualisierungs-Frameworks nicht unterstützt.
- Netzwerkfunktionen wie private Azure-Netzwerke und das Zuweisen statischer IPs sind derzeit für macOS größere Runner nicht verfügbar.
- Die arm64 macOS-Runner haben keine statische UUID/UDID zugewiesen, da Apple dieses Feature nicht unterstützt. Den Intel MacOS-Runnern wird jedoch eine statische UDID zugewiesen, insbesondere
4203018E-580F-C1B5-9525-B745CECA79EB. Wenn Sie den Build auf demselben Host erstellen und signieren, auf dem Sie ihn testen möchten, können Sie mit einem Entwicklungsbereitstellungsprofil signieren. Wenn Sie eine statische UDID benötigen, können Sie Intel-Runner verwenden und ihre UDID ihrem Apple-Entwicklerkonto hinzufügen.
Single-CPU Runner
Single-CPU-GitHubgehostete Runner sind sowohl in öffentlichen als auch in privaten Repositorys verfügbar. Diese Runner, die mit dem Workflow-Label ubuntu-slim angegeben wurden, bieten eine kostengünstige Option zum Ausführen leichter Operationen. Diese Art von Runner ist für Automatisierungsaufgaben, Problembearbeitung und kurze Aufgaben optimiert. Sie sind nicht für typische umfangreiche CI/CD-Builds geeignet.
ubuntu-slim Runner führen Aktionen-Workflows in Ubuntu Linux in einem Container anstelle einer vollständigen VM-Instanz aus. Wenn der Auftrag beginnt, stellt GitHub automatisch einen neuen Container für den Auftrag bereit. Alle Schritte des Jobs werden im Container ausgeführt. Dies bietet die Möglichkeit, dass die Schritte des Jobs Informationen über das Dateisystem des Runners austauschen. Wenn der Auftrag abgeschlossen ist, wird der Container automatisch außer Betrieb gesetzt. Jeder Container stellt eine Isolierung auf Hypervisor-Ebene 2 bereit.
Hinweis
Der Container für ubuntu-slim Runner läuft im unprivilegierten Modus. Dies bedeutet, dass einige Vorgänge, die erhöhte Berechtigungen erfordern – wie das Einhängen von Dateisystemen, die Nutzung von Docker-in-Docker oder der Zugriff auf Kernel-Funktionen auf niedriger Ebene – nicht unterstützt werden.
Ein minimales Set an Tools wird auf dem ubuntu-slim Runner-Image installiert, geeignet für leichte Aufgaben. Ausführliche Informationen dazu, welche Software auf dem ubuntu-slim Image installiert ist, finden Sie in der README-Datei im actions/runner-images Repository.
Nutzungslimits
Single-CPU Läufer folgen dem gleichen Parallelitätsmodell wie andere GitHubgehostete Standardläufer. Weitere Informationen findest du unter Actions-Grenzwerte. Die Parallelität für die Runner wird durch Ihren Plan bestimmt.
Der Job-Timeout für Single-CPU-Runner beträgt 15 Minuten. Wenn ein Auftrag dieses Limit erreicht, wird dieser beendet und schlägt fehl.
Größerer Runners
Größerer Runners sind für Organisationen und Unternehmen in den Tarifen GitHub Team und GitHub Enterprise Cloud verfügbar.
Größerer Runners sind verwaltete virtuelle Maschinen mit mehr Ressourcen als standardmäßige GitHubgehostete Runner. Sie bieten die folgenden erweiterten Funktionen:
- mehr RAM, CPU und Speicherplatz auf dem Datenträger
- Statische IP-Adressen
- Azure private Vernetzung
- Die Möglichkeit zum Gruppieren von Runnern
- Automatische Skalierung zur Unterstützung gleichzeitiger Workflows
- GPU-gestützte Runner
Diese größere Runner werden von GitHub gehostet und haben die Runner-Anwendung sowie andere Tools vorinstalliert.
Weitere Informationen finden Sie unter Verwenden größerer Runner.
Administratorrechte
Die Linux- und macOS-VMs werden beide mit dem kennwortlosen Befehl sudo ausgeführt. Wenn Sie Befehle ausführen oder Tools installieren müssen, die höhere Berechtigungen als die des aktuellen Benutzers erfordern, können Sie sudo verwenden, ohne ein Kennwort angeben zu müssen. Weitere Informationen finden Sie unter dem Sudo-Handbuch.
Die virtuellen Windows-Maschinen sind so konfiguriert, dass sie als Administratoren laufen, wobei die Benutzerkonten-Steuerung (UAC) deaktiviert ist. Weitere Informationen finden Sie unter Arbeitsweise der Benutzerkontensteuerung in der Windows-Dokumentation.
IP-Adressen
Um eine Liste der IP-Adressbereiche abzurufen, die GitHub Actions für von GitHub gehostete Runner verwendet, können Sie die GitHub REST-API verwenden. Weitere Informationen finden Sie im actions-Schlüssel in der Antwort des GET /meta-Endpunkts. Weitere Informationen finden Sie unter REST-API-Endpunkte für Metadaten.
Windows- und Ubuntu-Runner werden in Azure gehostet und weisen daher die gleichen IP-Adressbereiche wie Azure-Rechenzentren auf. macOS-Runner werden in GitHubs eigener macOS-Cloud gehostet.
Da es so viele IP-Adressbereiche für von GitHub gehostete Runner gibt, empfehlen wir nicht, diese als Allowlists für Ihre internen Ressourcen zu verwenden. Stattdessen empfehlen wir, größerer Runners mit einem statischen IP-Adressbereich oder selbst gehostete Läufer zu verwenden. Weitere Informationen findest du unter Verwenden größerer Runner oder Selbstgehosteten Runnern.
Die Liste der GitHub Actions von der API zurückgegebenen IP-Adressen wird einmal pro Woche aktualisiert.
Kommunikationsanforderungen für GitHub-gehostete Runner
Ein GitHub-gehosteter Runner muss Verbindungen zu Endpunkten in Besitz von GitHub herstellen, um wesentliche Kommunikationsvorgänge auszuführen. Darüber hinaus erfordert Ihr Runner möglicherweise Zugriff auf zusätzliche Netzwerke, die Sie innerhalb einer Aktion angeben oder nutzen.
Um eine ordnungsgemäße Kommunikation für von GitHub gehostete Runner zwischen Netzwerken innerhalb Ihrer Konfiguration sicherzustellen, stellen Sie sicher, dass die folgende Kommunikation zulässig ist.
Hinweis
Einige der aufgeführten Domänen werden mithilfe von CNAME-Einträgen konfiguriert. Für bestimmte Firewalls musst du Regeln möglicherweise rekursiv für alle CNAME-Einträge hinzufügen. Beachte, dass sich die CNAME-Einträge in Zukunft ändern können und dass nur die aufgeführten Domänen konstant bleiben.
Erforderlich für wesentliche Vorgänge:
github.com api.github.com *.actions.githubusercontent.com
github.com
api.github.com
*.actions.githubusercontent.com
Erforderlich für Downloadaktionen:
codeload.github.com
codeload.github.com
Erforderlich für den Up- und Download von Auftragszusammenfassungen, Protokollen, Workflow-Artefakten und Caches:
results-receiver.actions.githubusercontent.com *.blob.core.windows.net
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net
Erforderlich für Aktualisierungen der Runner-Version:
objects.githubusercontent.com objects-origin.githubusercontent.com github-releases.githubusercontent.com github-registry-files.githubusercontent.com
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com
Erforderlich für das Abrufen von OIDC-Token:
*.actions.githubusercontent.com
*.actions.githubusercontent.com
Erforderlich zum Herunterladen oder Veröffentlichen von Paketen oder Containern bei GitHub Packages:
*.pkg.github.com pkg-containers.githubusercontent.com ghcr.io
*.pkg.github.com
pkg-containers.githubusercontent.com
ghcr.io
Erforderlich für Git Large File Storage (Speicher für große Dateien)
github-cloud.githubusercontent.com github-cloud.s3.amazonaws.com
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com
Erforderlich für Aufträge für Dependabot updates
dependabot-actions.githubapp.com
dependabot-actions.githubapp.com
Zum Herunterladen von Releaseressourcen erforderlich:
release-assets.githubusercontent.com
release-assets.githubusercontent.com
Für VNet erforderlich:
api.snapcraft.io
api.snapcraft.io
Dateisysteme
GitHub führt Aktionen und Shellbefehle in bestimmten Verzeichnissen auf dem virtuellen Computer aus. Die Dateipfade auf virtuellen Maschinen sind nicht statisch. Verwenden Sie die von GitHub bereitgestellten Umgebungsvariablen, um Dateipfade für die Verzeichnisse home, workspace und workflow zu erstellen.
| Verzeichnis | Umgebungsvariable | BESCHREIBUNG |
|---|---|---|
home | HOME | Enthält benutzerbezogene Daten. In diesem Verzeichnis können sich beispielsweise die Anmeldeinformation aus einem Anmeldeversuch befinden. |
workspace | GITHUB_WORKSPACE | Aktionen und Shell-Befehle werden in diesem Verzeichnis ausgeführt. Eine Aktion kann den Inhalt dieses Verzeichnisses ändern, auf den dann nachfolgende Aktionen zugreifen können. |
workflow/ | GITHUB_EVENT_PATH | Die POST-Nutzdaten des Webhookereignisses, das den Workflow ausgelöst hat. |
| GitHub Schreibt dies jedes Mal neu, wenn eine Aktion ausgeführt wird, um Dateiinhalte zwischen Aktionen zu isolieren. |
Eine Liste der Umgebungsvariablen GitHub , die für jeden Workflow erstellt werden, finden Sie unter Speichern von Informationen in Variablen.
Docker-Container-Dateisystem
Aktionen, die in Docker-Containern ausgeführt werden, haben statische Verzeichnisse unter dem Pfad /github. Wir empfehlen jedoch dringend, die Standard-Umgebungsvariablen zu verwenden, um Dateipfade in Docker-Containern zu erstellen.
GitHub reserviert das /github Pfadpräfix und erstellt drei Verzeichnisse für Aktionen.
/github/home/github/workspace- Hinweis: GitHub Actions müssen vom standardmäßigen Docker-Benutzer (Root) ausgeführt werden. Stelle sicher, dass dein Dockerfile nicht dieUSER-Anweisung festlegt, andernfalls kannst du nicht aufGITHUB_WORKSPACEzugreifen./github/workflow