Zum Inhalt springen

runnerhut

Antworten

Direkte Antworten auf die Fragen, die Entwickler zu CI stellen.

Abrechnung und Kosten21

Wird mir eine Rechnung gestellt, wenn ein GitHub Actions-Job fehlschlägt?Ja. Ihnen werden die bis zum Ausfall verbrauchten Minuten in Rechnung gestellt, nicht der Erfolg.Sind GitHub Actions kostenlos für Open Source?Ja, auf von GitHub gehosteten Standard-Runnern für öffentliche Repositories, ohne Minutengebühr.Sind GitHub Actions für private Repositories kostenlos?Nein. Private Repositories erhalten je nach Plan ein monatliches Inklusivminuten-Kontingent, das dann pro Minute abgerechnet wird.Zahle ich eine Sitzplatzgebühr für betreute Läufer?Auf runnerhut, Nr. Die Abrechnung erfolgt pro Rechenminute ohne Gebühr pro Entwickler.Bezahle ich die Wartezeit?Nein. Die Abrechnung beginnt, wenn Ihr erster Schritt ausgeführt wird, nicht, wenn der Auftrag in die Warteschlange gestellt wird.Zahle ich sowohl für den Runner als auch für den Remote-Docker-Builder?Ja, aber dem Bauunternehmer werden nur die Sekunden in Rechnung gestellt, in denen er aktiv baut.Wie wird ein stornierter Auftrag abgerechnet?Sie zahlen für die bis zur Kündigung verstrichenen Minuten, gerundet auf den Abrechnungsschritt.Gibt es eine Mindestabrechnungsstufe?runnerhut rechnet pro Sekunde mit einem Minimum von einer Minute pro Job.Wie viel kosten verwaltete GitHub Actions-Läufer?runnerhut Linux x64-Läufer beginnen bei 0,004 US-Dollar pro Minute, etwa der Hälfte des GitHub-Listenpreises für die entsprechende Größe.Was ist die günstigste Läufergröße?Die kleinste Größe, die Ihren Job auf seinem kritischen Pfad hält – normalerweise 2 oder 4 vCPU für Lint- und Unit-Tests.Ist arm64 billiger als x64?Ja. runnerhut arm64-Läufer liegen preislich etwa 20 % unter der entsprechenden x64-Größe.Ist es günstiger, weniger, dafür aber größere Läufer laufen zu lassen?Nur wenn Ihre Arbeitslast tatsächlich parallelisiert wird. Andernfalls zahlen Sie mehr pro Minute für Kerne, die im Leerlauf sind.Kann ich ein Ausgabenlimit festlegen?Ja. runnerhut unterstützt feste Budgetobergrenzen pro Organisation und pro Repository.Was passiert, wenn das kostenlose Guthaben aufgebraucht ist?Aufträge werden erst dann geplant, wenn Sie eine Zahlungsmethode hinzufügen oder die Obergrenze erhöhen.Wie schätze ich meine GitHub Actions-Rechnung?Multiplizieren Sie die monatlichen Minuten pro Betriebssystem mit dem Minutensatz für dieses Betriebssystem und fügen Sie dann Speicherplatz für Artefakte und Cache hinzu.Wie kann ich die Ausgaben meiner Läufer prognostizieren?Nehmen Sie sich nachlaufende 90-Tage-Minuten pro Workflow, nutzen Sie das Wachstum Ihrer Zusammenführungsrate und schaffen Sie Spielraum für Matrixänderungen.Warum ist meine GitHub Actions-Rechnung so hoch?Normalerweise eines von vier Dingen: macOS-Minuten, Matrixexplosion, keine Aufhebung der Parallelität oder übergroße Läufer.Bezahlen öffentliche Repositories für verwaltete Läufer?Auf GitHub-gehosteten Standard-Runnern nein. Bei verwalteten Anbietern, einschließlich runnerhut, ja – aber Open-Source-Programme sind verfügbar.Was kostet der Aktions-Cache-Speicher?GitHub beinhaltet 10 GB pro Repository kostenlos und entfernt darüber hinaus. Der runnerhut-Cache (runnerhut) ist unbegrenzt und im Preis inbegriffen.Wie wird Snapshot-Speicher abgerechnet?Pro Gigabyte-Monat für den aufbewahrten Snapshot, getrennt von den Rechenminuten.Kann ich mehr gleichzeitige Jobs ausführen, als mein GitHub-Plan zulässt?Ja. Die verwaltete Runner-Parallelität wird von Ihrem Runner-Anbieter festgelegt, nicht von den Hosted-Runner-Limits Ihres GitHub-Plans.

Leistung10

Warum sind GitHub Actions langsam?Am häufigsten: gemeinsam genutzte vCPU, Cold-Caches, an das Netzwerk angeschlossene Festplatten und Wartezeit, bevor der Job überhaupt beginnt.Wie schnell starten Runner, nachdem ein Job in die Warteschlange gestellt wurde?runnerhut-Läufer starten in etwa drei Sekunden aus einem warmen Becken.Muss ich meinen Workflow ändern?Nein. Ändern Sie das Nachlaufetikett und lassen Sie alles andere so wie es ist.Wie wähle ich eine Läufergröße aus?Beginnen Sie eine Größe über Ihrem aktuellen Läufer, überprüfen Sie dann die CPU-Auslastung und hören Sie auf, wenn die Kurve flacher wird.Warum stehen meine Jobs hintereinander an?Sie haben ein Parallelitätslimit erreicht – entweder das Ihres Plans, das Ihrer Runner-Gruppe oder eine Parallelitätsgruppe im Workflow.Warum laufen meine Python-Tests in CI langsamer als lokal?pytest ist standardmäßig seriell und Ihr Laptop verfügt über eine schnellere Single-Core-Leistung und einen warmen Dateisystem-Cache.Warum ist die NPM-Installation in CI langsam?node_modules schreibt Zehntausende kleiner Dateien, und die an das Netzwerk angeschlossene CI-Festplatte kommt damit schlecht zurecht.Warum startet der Gradle-Daemon bei jedem Lauf?Jeder CI-Job ist eine neue Maschine, daher gibt es keinen wiederzuverwendenden Daemon – und ohne den Konfigurationscache wertet Gradle den gesamten Build neu aus.Warum zeigt mein Job eine hohe E/A-Wartezeit an?Die Arbeitslast ist festplattengebunden – normalerweise eine Abhängigkeitsinstallation, eine Container-Layer-Extraktion oder eine Datenbank in einem Service-Container.Wie viele Jobs können gleichzeitig ausgeführt werden?Dies hängt von Ihrem Plan für GitHub-gehostete Läufer und von Ihrer konfigurierten Parallelität für verwaltete Läufer ab.

Caching38

Warum baut Cargo alles neu auf?Ihr Cache-Schlüssel ändert sich bei jedem Lauf, oder target/ wird überhaupt nicht zwischengespeichert.Warum ist die Cache-Wiederherstellung langsam?GitHub drosselt die Cache-Bandbreite, sodass die Wiederherstellung eines Multi-Gigabyte-Cache Minuten dauern kann.Wie schreibe ich einen guten Cache-Schlüssel?Hashen Sie genau die Dateien, die den zwischengespeicherten Inhalt bestimmen – normalerweise die Sperrdatei – und sonst nichts.Was sind Wiederherstellungsschlüssel?Geordnete Präfixe werden ausprobiert, wenn der genaue Cache-Schlüssel fehlt, sodass eine teilweise Übereinstimmung trotzdem wiederhergestellt werden kann.Warum verpasst mein Cache jeden Lauf?Der Schlüssel enthält etwas, das sich bei jedem Lauf ändert – üblicherweise github.sha oder einen Zeitstempel.Wie lange sind Caches haltbar?GitHub entfernt Caches, die 7 Tage lang nicht verwendet werden, oder früher, wenn das Repository 10 GB überschreitet.Wie lösche ich einen Cache?Löschen Sie es von der Aktions-Cache-Seite des Repositorys oder über die REST-API oder die GH-CLI.Werden Caches über Zweige hinweg übertragen?Ein Zweig kann Caches von sich selbst und seinem Basiszweig lesen, jedoch nicht von nicht verwandten Zweigen.Kann ich einen Cache zwischen Workflows teilen?Auf von GitHub gehosteten Läufern nur innerhalb desselben Repositorys und Zweigbereichs. runnerhut-Caches (runnerhut) werden von allen Arbeitsabläufen in der Organisation gemeinsam genutzt.Was ist die Cache-Größenbeschränkung für GitHub Actions?10 GB pro Repository, danach werden die zuletzt verwendeten Einträge entfernt.Wie speichere ich node_modules zwischen?Cachen Sie ~/.npm verschlüsselt auf package-lock.json oder stellen Sie node_modules direkt wieder her, wenn Ihre Installation deterministisch ist.Wie speichere ich Pip-Abhängigkeiten zwischen?Cachen Sie ~/.cache/pip mit dem Schlüssel „requirements.txt“ oder speichern Sie die gesamte virtuelle Umgebung zwischen, um einen größeren Gewinn zu erzielen.Wie kann ich Go-Module zwischenspeichern?Cache ~/go/pkg/mod und ~/.cache/go-build mit Schlüssel auf go.sum.Wie speichere ich Cargo-Abhängigkeiten zwischen?Cache ~/.cargo/registry, ~/.cargo/git und target/ mit Schlüssel auf Cargo.lock.Wie speichere ich Maven-Abhängigkeiten zwischen?Cache ~/.m2/repository, verschlüsselt mit einem Hash jeder pom.xml.Wie speichere ich Gradle-Builds zwischen?Cachen Sie ~/.gradle/caches und ~/.gradle/wrapper und aktivieren Sie die Build- und Konfigurationscaches.Wie speichere ich Bundler-Edelsteine im Cache?Der Cache-Anbieter/das Cache-Paket ist auf Gemfile.lock festgelegt, sodass native Erweiterungen einmal kompiliert werden.Wie speichere ich Composer-Abhängigkeiten zwischen?Cache ~/.composer/cache ist auf „composer.lock“ gesperrt.Wie speichere ich CocoaPods zwischen?Cache-Pods/ und ~/Library/Caches/CocoaPods mit Schlüssel auf Podfile.lock.Wie speichere ich Swift Package Manager-Abhängigkeiten zwischen?Cache .build und ~/Library/Caches/org.swift.swiftpm mit Schlüssel auf Package.resolved.Wie speichere ich Yarn Berry im Cache?Cache .yarn/cache und .yarn/install-state.gz, verschlüsselt auf Yarn.lock.Wie kann ich UV- oder Poetry-Umgebungen zwischenspeichern?Cache ~/.cache/uv oder ~/.cache/pypoetry mit Schlüssel für die Sperrdatei sowie das .venv-Verzeichnis.Wie speichere ich Playwright-Browser zwischen?Cache ~/.cache/ms-playwright für die Playwright-Version aus Ihrer Sperrdatei.Wie kann ich Docker-Ebenen zwischenspeichern?Verwenden Sie einen Remote-Builder, der den Cache lokal speichert, oder exportieren Sie ihn mit Cache-to und Cache-from in eine Registry.Funktioniert das Caching innerhalb eines Containerjobs?Ja, aber Pfade innerhalb des Containers unterscheiden sich von Pfaden auf dem Host, daher müssen Cache-Schlüssel auf Containerpfade verweisen.Funktionieren Caches architekturübergreifend?Nein. Kompilierte Artefakte für x64 sind auf arm64 nicht gültig, daher muss die Architektur Teil des Schlüssels sein.Funktionieren Caches auf Windows-Runnern?Ja, aber Pfadtrennzeichen und Groß-/Kleinschreibung unterscheiden sich, daher müssen Schlüssel und Pfade Windows-spezifisch behandelt werden.Wie behalte ich einen Docker-Layer-Cache zwischen Pull-Anfragen?Verwenden Sie einen persistenten Remote-Builder – sein Cache ist nicht auf einen Zweig beschränkt.Kann ich ein erstelltes Image zwischenspeichern, anstatt es neu zu erstellen?Ja – übertragen Sie es in eine durch den Inhalts-Hash gekennzeichnete Registrierung und rufen Sie es ab, wenn die Eingaben unverändert bleiben.Kann ich eine Datenbank zwischen Jobs warm halten?Nicht bei Servicecontainern, die bei der Arbeit zerstört werden. Laden Sie stattdessen einen vormigrierten Schema-Dump.Kann ich Xcode DerivedData zwischen den Läufen behalten?Ja. Persist ~/Library/Developer/Xcode/DerivedData – es ist der größte Einzelgewinn für iOS CI.Ersetzen Snapshot-Runner Aktionen/Cache?Sie können. Ein Snapshot stellt den gesamten Maschinenzustand wieder her, sodass der Installationsschritt nicht schneller erfolgt, sondern entfällt.Was überträgt sich auf einen Schnappschuss?Das gesamte Dateisystem zum Snapshot-Zeitpunkt – installierte Pakete, erstellte Erweiterungen, Toolchain-Verzeichnisse und Warm-Page-Cache.Wie mache ich einen Snapshot ungültig?Geben Sie es in Ihren Lockfile-Hash ein, damit eine Abhängigkeitsänderung automatisch eine Neuerstellung auslöst.Wie lange sind Schnappschüsse haltbar?Standardmäßig 14 Tage auf runnerhut, dann bei der nächsten Verwendung wieder aufgebaut.Kann ich einen Snapshot von einem Feature-Zweig erstellen?Ja, und Branch-Snapshots sind voneinander isoliert.Was sind Snapshot-Runner?Läufer, die von einem Dateisystem-Image booten, das nach der Installation Ihrer Abhängigkeiten erfasst wurde, sodass die Installation vollständig übersprungen wird.Funktionieren Snapshots auf macOS-Läufern?Ja, und dort sind sie besonders wertvoll, da CocoaPods und DerivedData beide langsam neu erstellt werden können.

arm6412

Können GitHub Actions arm64 ausführen?Ja. GitHub bietet arm64-Runner in kostenpflichtigen Plänen an, und verwaltete Anbieter wie runnerhut bieten sie in allen Plänen an.Kann ich arm64-Images auf einem x64-Runner erstellen?Ja, mit QEMU – aber es ist 5–40-mal langsamer als die native Erstellung.Was ändert sich beim Wechsel von x64 zu arm64?Native Module, Python-Räder und jede x86-Assembly benötigen Aarch64-Unterstützung. Die meisten Mainstream-Abhängigkeiten haben es mittlerweile.Kann ich arm64- und x64-Jobs im selben Workflow ausführen?Ja. Verwenden Sie eine Matrix mit einer anderen Läuferbezeichnung pro Architektur.Unterstützen arm64-Läufer Buildx?Ja, und auf nativer Arm64-Hardware erzeugt Buildx Arm64-Bilder ohne Emulation.Kann ich 32-Bit-ARM-Builds auf arm64-Läufern ausführen?Ja, über Cross-Compilation mit einer ArmHF-Toolchain oder mit Multilib-Unterstützung, sofern verfügbar.Wie führe ich arm64-Integrationstests durch?Führen Sie den gesamten Job auf einem nativen Arm64-Runner aus, einschließlich aller Service-Container, die über Arm64-Images verfügen müssen.Welche arm64-Läufergrößen sind verfügbar?runnerhut bietet 2 bis 64 vCPU arm64-Runner auf Ubuntu 22.04 und 24.04.Verwenden arm64-Läufer ein anderes Arbeitsverzeichnis?Nein. Die Pfade stimmen mit den x64-Bildern überein, sodass die Workflows unverändert portiert werden.Wie erstelle ich eine Rust-Binärdatei für mehrere Ziele?Verwenden Sie eine Matrix mit einem nativen Runner pro Ziel, anstatt alles auf einem Computer zu kompilieren.Können GitHub Actions Multi-Arch-Images erstellen?Ja – entweder mit QEMU auf einem Läufer oder nativ auf Läufern pro Architektur, die in einer Manifestliste zusammengeführt werden.Ist QEMU oder natives arm64 schneller?Nativ, um den Faktor 5 bis 40, je nachdem, wie viel der Build kompiliert.

macOS und iOS15

Unterstützen GitHub Actions-Läufer macOS?Ja, sowohl von GitHub gehostete als auch verwaltete Anbieter bieten macOS-Läufer auf Apple-Chips an.Kann ich iOS-Apps ohne einen Mac-Runner erstellen?Nein. Xcode läuft nur auf macOS, daher erfordert ein iOS-Build einen macOS-Runner.Ist Xcode auf macOS-Läufern vorinstalliert?Ja. runnerhut-Images liefern mehrere Xcode-Versionen mit passenden Befehlszeilentools.Wie wähle ich eine Xcode-Version aus?Führen Sie sudo xcode-select -s /Applications/Xcode_16.4.app vor Ihren Build-Schritten aus.Welche Xcode-Versionen sind verfügbar?runnerhut macOS 15-Images enthalten Xcode 16.0, 16.2 und 16.4; macOS 14-Images enthalten 15.2 und 15.4.Welche macOS-Versionen werden unterstützt?runnerhut bietet macOS 14- und macOS 15-Images auf Apple-Silizium.Unterstützt GitHub Actions Apple-Silizium?Ja. Sowohl von GitHub gehostete als auch verwaltete macOS-Läufer laufen jetzt auf Apple-Chips.Wie viel Speicherplatz haben macOS-Läufer?runnerhut macOS-Läufer stellen je nach Größe 250 GB bis 1 TB NVMe zur Verfügung.Welche Simulatorlaufzeiten werden auf macOS-Läufern ausgeliefert?iOS 17.5 bis 18.4 sowie die Laufzeiten watchOS, tvOS und visionOS.Kann ich Docker auf macOS-Läufern verwenden?Nur über eine Linux-VM, was langsam ist. Führen Sie Docker-Workloads stattdessen auf Linux-Läufern aus.Kann ich macOS-Runner in der EU ausführen?Ja. runnerhut betreibt macOS-Kapazität in EU-Regionen für Datenresidenzanforderungen.Kann ich Android- und iOS-Builds in einem Workflow ausführen?Ja – verwenden Sie eine Matrix mit einem macOS-Runner für iOS und einem Linux-Runner für Android.Wie beschleunige ich wiederholte Xcode-Builds?Behalten Sie DerivedData zwischen den Läufen bei und pinnen Sie die Xcode-Version.Wie führe ich iOS-Tests parallel aus?Shard nach Testziel oder Testklasse über mehrere Simulatoren auf einem großen macOS-Runner.Wie beglaubige ich eine macOS-App in CI?Verwenden Sie notarytool mit einem als Geheimnis gespeicherten App Store Connect-API-Schlüssel.

Docker17

Wie kann ich die Bild-Pull-Zeit verkürzen?Verwenden Sie einen Registry-Pull-Through-Cache im selben Netzwerk wie der Runner.Wie setze ich einen Docker-Builder-Cache zurück?Führen Sie docker buildx prune auf dem Builder aus oder erstellen Sie die Builder-Instanz neu.Unterstützen Remote-Builder Multiplattform-Builds?Ja. runnerhut führt separate AMD64- und Arm64-Builder aus und führt die Ergebnisse zusammen.Wie pushe ich eine Manifestliste?Erstellen Sie jede Architektur per Digest und kombinieren Sie sie dann mit docker buildx imagetools create.Warum ist mein Docker-Build langsam?Cold-Layer-Cache, über das Netzwerk übertragener Cache oder unter Emulation erstellter Arm64.Warum geht dem Docker-Build die Festplatte aus?Von GitHub gehostete Läufer haben etwa 14 GB frei, wodurch große Bilder und ihr Layer-Cache schnell erschöpft sind.Warum macht ein Basis-Image-Update alles ungültig?Jede Ebene nach FROM hängt vom Basis-Image-Digest ab, sodass eine neue Basis sie alle ungültig macht.Was ist der Unterschied zwischen Cache-von und Cache-bis?Cache-from importiert einen vorhandenen Layer-Cache; Cache-to exportiert den von diesem Build erzeugten Cache.Brauche ich buildx?Für Multiplattform-Builds, Cache-Mounts oder Remote-Builder, ja. Für einen einfachen Einzelbogenaufbau nein.Was ist ein Remote-Docker-Builder?Eine persistente BuildKit-Instanz, an die Ihr Job angehängt wird und die den Layer-Cache auf ihrer eigenen Festplatte behält.Wie wird ein Fernbauer abgerechnet?Pro Sekunde aktiver Buildzeit, getrennt von den Runner-Minuten.Können sich zwei Jobs einen Bauunternehmer teilen?Ja. Matrixzweige und separate Workflows können an denselben Builder angeschlossen werden und dessen Cache gemeinsam nutzen.Wie baue und pushe ich in einem Schritt?Verwenden Sie docker/build-push-action mit push: true.Wie verwende ich Docker Bake?Definieren Sie Ziele in docker-bake.hcl und führen Sie Docker Buildx Bake in einem Schritt aus.Wie authentifiziere ich mich bei einer privaten Registrierung?Verwenden Sie docker/login-action mit einem Token oder OIDC für Cloud-Registrierungen.Kann ich Docker Compose ausführen?Ja. Compose v2 ist vorinstalliert; Verwenden Sie docker compose up -d --wait, damit die Schritte den Start nicht beschleunigen.Kann ich Podman anstelle von Docker verwenden?Ja. Podman ist verfügbar und weitgehend CLI-kompatibel mit Docker.

Sicherheit19

Sind Snapshot-Runner für öffentliche Repositories sicher?Nur wenn Snapshots von vertrauenswürdigen Zweigen erstellt werden und niemals von Fork-Pull-Anfragen.Wie erstelle ich eine SBOM?Aktivieren Sie die sbom: true-Ausgabe von buildx oder führen Sie syft für das erstellte Image aus.Wie füge ich die Build-Herkunft hinzu?Verwenden Sie „actions/attest-build-provenance“ oder „provenance: true attestation“ von buildx.Wie übergebe ich Geheimnisse an einen Docker-Build?Verwenden Sie BuildKit-Build-Geheimnisse mit --secret, niemals ARG oder ENV.Sind GitHub Actions-Runner sicher?Von GitHub gehostete und seriös verwaltete Läufer sind kurzlebige Einweg-VMs, was das richtige Isolationsmodell darstellt.Speichern Läufer meinen Quellcode?Nur für die Dauer des Auftrags. runnerhut zerstört die VM und löscht ihre Festplatte, wenn der Job beendet ist.Kann die Runner-Plattform meine Geheimnisse sehen?Geheimnisse werden im Speicher des Läufers entschlüsselt, um verwendet zu werden, was technisch gesehen auf jeder Läuferplattform möglich ist.Wie lege ich GITHUB_TOKEN-Berechtigungen fest?Fügen Sie einen Berechtigungsblock auf Workflow- oder Jobebene hinzu und gewähren Sie nur die benötigten Bereiche.Wie authentifiziere ich mich mit OIDC bei AWS?Konfigurieren Sie GitHub als OIDC-Anbieter in IAM und verwenden Sie aws-actions/configure-aws-credentials mit einer Rolle.Ändern verwaltete Läufer meine GitHub-Berechtigungen?Nein. Jobs werden mit demselben GITHUB_TOKEN und denselben Berechtigungen wie auf von GitHub gehosteten Läufern ausgeführt.Kann ich einschränken, welche Repositorys meine Runner verwenden?Ja, mit Runner-Gruppen, die auf bestimmte Organisationen oder Repositorys beschränkt sind.Ist runnerhut SOC 2-konform?runnerhut unterhält SOC 2 Typ 2, wobei der Bericht unter NDA verfügbar ist.Wo werden meine Build-Daten gespeichert?In der von Ihnen ausgewählten Region. Rechenleistung, Cache, Protokolle und Metriken sind alle derselben Region zugeordnet.Kann ich Builds nur in der EU behalten?Ja. Bei Nur-EU-Bereitstellungen werden Rechenleistung, Cache, Protokolle und Metriken an EU-Regionen gebunden.Kann ich den ausgehenden Datenverkehr einschränken?Ja. Ausgangsrichtlinien verweigern standardmäßig nur die von Ihnen aufgelisteten Ziele und lassen sie zu.Wie überprüfe ich Änderungen an der Runner-Konfiguration?Das Audit-Protokoll zeichnet Akteur, Zeitstempel, Quell-IP und Vorher/Nachher-Werte für jede Konfigurationsänderung auf.Wo laufen Managed Runner physisch?In den Rechenzentren des Anbieters oder in Ihrem eigenen Cloud-Konto unter BYOC.Was passiert mit den Läuferscheiben nach einem Auftrag?Auf runnerhut werden sie kryptografisch gelöscht und die VM zerstört.Behalten Läufer ihren Status zwischen Jobs bei?Ephemere Läufer tun dies nicht. Bei persistenten selbstgehosteten Läufern ist dies der Fall, was ein Sicherheitsrisiko für öffentliche Repositorys darstellt.

Bringen Sie Ihre eigene Cloud mit18

Können Läufer auf mein privates Netzwerk zugreifen?Ja, über BYOC-Läufer in Ihrer VPC oder ein Mesh-Netzwerk wie Tailscale.Können Läufer in meinem eigenen Cloud-Konto laufen?Ja. BYOC stellt Läufer in Ihrem AWS-, GCP- oder Azure-Konto bereit, während die Steuerungsebene verwaltet bleibt.Was erstellt runnerhut in meinem Cloud-Konto?Eine Autoscaling-Gruppe, ein Cache-Bucket, ein Registry-Pull-Through-Cache, eine bereichsbezogene IAM-Rolle und ein VPC-Endpunkt.Welche AWS-Berechtigungen benötigt BYOC?Berechtigungen zum Verwalten der eigenen Autoscaling-Gruppe, des Cache-Buckets und der Instanzrolle – nichts weitergehendes.Kann ich meine eigene VPC verwenden?Ja. Sie geben die VPC- und Subnetz-IDs an und Runner werden dort platziert.Können BYOC-Läufer interne Dienste erreichen?Ja – das ist der Hauptgrund für den Einsatz von BYOC. Sie befinden sich mit normalem Routing in Ihrem Netzwerk.Benötigen BYOC-Läufer ein NAT-Gateway?Sie benötigen ausgehendes Internet für Image- und Paket-Pulls, was normalerweise ein NAT-Gateway bedeutet.Können BYOC-Läufer in einem privaten Subnetz ausgeführt werden?Ja, und das sollten sie auch. Der ausgehende Zugriff erfolgt über NAT- oder VPC-Endpunkte.Kann ich einem BYOC-Läufer eine IAM-Rolle zuordnen?Ja, über ein Instanzprofil – Jobs erhalten also Anmeldeinformationen, ohne dass ein Geheimnis gespeichert wird.Funktioniert BYOC mit IMDSv2?Ja, und IMDSv2 wird standardmäßig erzwungen.Kann ich BYOC in mehreren Regionen ausführen?Ja. Stellen Sie das Modul pro Region bereit und kennzeichnen Sie Läufer nach Region.Unterstützt BYOC benutzerdefinierte Bilder?Ja. Stellen Sie Ihr eigenes AMI- oder Maschinenbild mit Ihren integrierten Werkzeugen bereit.Unterstützt BYOC Windows?Ja auf AWS und Azure. Die GCP-Windows-Unterstützung ist eingeschränkter.Unterstützt BYOC lokale GCP-SSD?Ja, bei Maschinenfamilien, die es anbieten.Wie funktioniert die BYOC-Abrechnung?Sie zahlen Ihrem Cloud-Anbieter für Rechenleistung und Netzwerk und runnerhut eine reduzierte Control-Plane-Gebühr.Wie markiere ich BYOC-Ressourcen?Kostenzuordnungs-Tags im Terraform-Modul festlegen; Sie breiten sich auf jede erstellte Ressource aus.Wie lösche ich einen BYOC-Stack?Entleeren Sie die Läufer und zerstören Sie dann das Modul durch Terraforming.Kann ich den Ausgang auf BYOC-Läufern steuern?Ja, mit Sicherheitsgruppen, NACLs und der Egress-Richtlinie von runnerhut.

Arbeitsabläufe30

Auf wie viele Stellen kann eine Matrix verteilt werden?GitHub begrenzt eine einzelne Matrix auf 256 Jobs pro Workflow-Lauf.Wie reproduziere ich einen CI-Fehler lokal?Passen Sie das Runner-Image an und stellen Sie dann eine SSH-Verbindung zu einem Live-Runner her, wenn der Fehler nur in CI auftritt.Kann ich eine SSH-Verbindung zu einem Runner herstellen?Ja. runnerhut unterstützt das Öffnen einer Debug-Sitzung für einen laufenden Job mit einem autorisierten SSH-Schlüssel.Kann ich von GitHub gehostete und verwaltete Läufer kombinieren?Ja. Die Ausführung erfolgt pro Job, sodass verschiedene Jobs in einem Workflow unterschiedliche Anbieter verwenden können.Wie wechsle ich den Läufer?Bearbeiten Sie den Run-On-Wert für den Job. Sonst muss sich nichts ändern.Wie führe ich einen Job nur aus, wenn sich Dateien ändern?Verwenden Sie „Pfade“ oder „Pfade ignorieren“ für den Auslöser oder eine Änderungserkennungsaktion für eine genauere Steuerung.Wie führe ich einen Workflow manuell aus?Fügen Sie einen Workflow_Dispatch-Trigger hinzu, optional mit typisierten Eingaben.Wie führe ich Jobs nach einem Zeitplan aus?Verwenden Sie den Zeitplan-Trigger mit Cron-Syntax in UTC.Wie kann ich abgelöste Läufe stornieren?Legen Sie eine Parallelitätsgruppe fest, die auf der Referenz mit cancel-in-progress: true basiert.Wie beschränke ich einen Workflow auf jeweils eine Ausführung?Verwenden Sie einen festen Namen für die Parallelitätsgruppe mit „Cancel in Progress: False“.Was passiert, wenn zwei Workflows eine Parallelitätsgruppe teilen?Sie werden serialisiert – der zweite wartet oder bricht den ersten ab, abhängig vom laufenden Abbruch.Wie stelle ich ein Job-Timeout ein?Fügen Sie dem Job Timeout-Minuten hinzu. Der Standardwert beträgt sechs Stunden.Wie kann ich einen fehlgeschlagenen Schritt wiederholen?Verwenden Sie eine Wiederholungsaktion oder schließen Sie den Befehl in eine Shell-Wiederholungsschleife ein.Wie verwende ich einen Workflow über Repositorys hinweg wieder?Veröffentlichen Sie einen wiederverwendbaren Workflow und rufen Sie ihn mit Workflow_call auf.Wie schreibe ich eine zusammengesetzte Aktion?Erstellen Sie action.yml mitruns.using:composite und einer Schrittliste.Wie verwende ich Matrix-Einschluss und -Ausschluss?include fügt Kombinationen hinzu oder erweitert sie; „exclude“ entfernt sie aus dem generierten Produkt.Wie überspringe ich CI bei einem Commit?Fügen Sie [skip ci] zur Commit-Nachricht hinzu.Wie schreibe ich eine Stellenzusammenfassung?Markdown an $GITHUB_STEP_SUMMARY anhängen.Wie betreibe ich eine Datenbank in CI?Deklarieren Sie es als Service-Container mit Gesundheitsprüfung.Wie veröffentliche ich ein Paket?Verwenden Sie die vertrauenswürdige OIDC-Veröffentlichung, wenn die Registrierung dies unterstützt, andernfalls ein bereichsbezogenes Token in einem Umgebungsgeheimnis.Wie teile ich Daten zwischen Jobs?Laden Sie ein Artefakt in einem Job hoch und laden Sie es im nächsten herunter oder verwenden Sie Jobausgaben für kleine Werte.Wie kann ich verhindern, dass ein langsamer Arbeitsablauf die Bereitstellung blockiert?Teilen Sie erforderliche Prüfungen von beratenden Prüfungen auf und markieren Sie nur die schnellen, zuverlässigen Aufgaben als erforderlich.Wie führe ich Browsertests kopflos durch?Verwenden Sie die Headless-Flagge für Ihren Runner oder xvfb-run für Tools, die eine Anzeige erfordern.Wie führe ich Go-Race-Detektortests durch?Lauf, geh testen – Rennen. Erwarten Sie eine etwa 2–10-mal langsamere Ausführung und eine höhere Speichernutzung.Was ist der Unterschied zwischen einem Job und einem Schritt?Ein Job läuft auf einem Runner und enthält Schritte; Schritte werden nacheinander im selben Arbeitsbereich ausgeführt.Was ist der Unterschied zwischen auf GitHub gehosteten und selbst gehosteten Läufern?Auf GitHub gehostete Dienste werden verwaltet, sind kurzlebig und werden pro Minute abgerechnet. Selbst gehostet können Sie auf Ihrer Hardware betreiben.Auf welchen Betriebssystemen können GitHub Actions ausgeführt werden?Linux, Windows und macOS, je nach Anbieter auf x64 und arm64.Wie lange werden Artefakte aufbewahrt?Standardmäßig 90 Tage, konfigurierbar pro Repository oder pro Upload bis hin zu einem Tag.Wie debugge ich einen fehlgeschlagenen Job?Aktivieren Sie die Schritt-Debug-Protokollierung, fügen Sie eine Jobzusammenfassung hinzu oder öffnen Sie eine SSH-Sitzung auf dem Runner.Wie führe ich einen Job nur für Pull-Anfragen aus?Verwenden Sie den Pull_request-Trigger und eine if-Bedingung für eine genauere Steuerung, z. B. das Überspringen von Entwürfen.

Beobachtbarkeit19

Wie sehe ich die Kosten pro Workflow?Das runnerhut-Dashboard (runnerhut) schlüsselt die Ausgaben nach Workflow, Job, Label und Repository auf.Wie sehe ich die Kosten pro Läuferetikette?Filtern Sie das Nutzungs-Dashboard nach Label, um die Minuten und Ausgaben pro Läufertyp anzuzeigen.Wie erkenne ich einen zu kleinen Läufer?Anhaltende CPU-Auslastung nahe 100 %, Speicherauslastung oder Auslagerungsaktivität während des Auftrags.Wie finde ich den langsamsten Schritt in einem Workflow?Sortieren Sie Schritte nach Dauer in der Laufansicht oder verwenden Sie die runnerhut-Zeitleiste (runnerhut), die Warteschlange, Setup und Schrittzeit separat anzeigt.Wie finde ich heraus, welcher Workflow langsamer wurde?Vergleichen Sie die p95-Dauer pro Workflow Monat für Monat im Analyse-Dashboard.Wie messe ich die Cache-Trefferrate?Das runnerhut-Dashboard (runnerhut) meldet Trefferrate, Wiederherstellungszeit und Größe pro Cache-Schlüssel.Wie exportiere ich Jobdaten?Verwenden Sie die runnerhut API oder die GitHub Actions REST API und schreiben Sie die Ergebnisse in CSV.Kann ein KI-Agent meine CI-Metriken abfragen?Ja, über den runnerhut MCP-Server, der Builds, Dauer, Fehler und Kosten als Tools bereitstellt.Können KI-Agenten CI-Jobs auslösen?Ja, über die API oder durch Pushen von Zweigen, wie bei jedem anderen Akteur.Welche Metriken stellt die API bereit?Warteschlangenzeit, Dauerperzentile, Cache-Trefferrate, CPU- und Speicherauslastung sowie Kosten pro Auftrag, Etikett und Workflow.Wie sehe ich die CPU- und Speicherauslastung für einen Job?runnerhut zeichnet die Auslastung pro Job automatisch auf und zeigt sie auf der Ausführungsseite an.Kann ich bei Aufträgen mit nicht genügend Arbeitsspeicher eine Benachrichtigung erhalten?Ja. Warnung bei OOM-Kills oder wenn die Speicherauslastung einen Schwellenwert überschreitet.Wie erstelle ich einen wöchentlichen CI-Gesundheitsbericht?Planen Sie einen Workflow, der die Metrik-API abfragt und p95-Dauer, Cache-Trefferrate, Flake-Rate und Ausgaben postet.Warum wurde mein Job mit dem Exit-Code 137 beendet?Das ist ein OOM-Kill – der Prozess hat den verfügbaren Speicher überschritten.Warum ist in meinem Job nicht mehr genügend Speicherplatz vorhanden?Von GitHub gehostete Läufer haben etwa 14 GB frei; Docker-Layer und node_modules erschöpfen sich so schnell.Haben Läufer große Scheiben?Von GitHub gehostete Läufer haben etwa 14 GB frei. runnerhut-Läufer stellen 150 GB bis 2 TB lokales NVMe zur Verfügung.Beschränken Läufergruppen die Parallelität?Sie können. Eine Gruppe kann unabhängig von Ihrem Kontolimit eine eigene Obergrenze für die Parallelität haben.Welche GitHub-API-Ratenbegrenzungen wirken sich auf CI aus?GITHUB_TOKEN ist pro Repository und Stunde begrenzt; Workflows, die viele API-Aufrufe durchführen, können es erschöpfen.Warum kommt es bei meinen Jobs zu Netzwerk-Timeouts?In der Regel handelt es sich um eine Registrierungsratenbegrenzung, einen NAT-Gateway-Engpass oder eine Ausgangsrichtlinie, die den Datenverkehr stillschweigend unterbricht.