Naar inhoud springen

runnerhut (loperhut)

Antwoorden

Directe antwoorden op wat engineers over CI vragen.

Facturering en kosten21

Word ik gefactureerd als een GitHub Actions-taak mislukt?Ja. U wordt gefactureerd voor de minuten die zijn verbruikt tot het moment van de storing, niet voor een succesvol resultaat.Zijn GitHub Actions gratis voor open source?Ja, op door GitHub gehoste standaardrunners voor openbare repository's, zonder minuutkosten.Zijn GitHub Actions gratis voor privérepository's?Nee. Privéopslagplaatsen krijgen maandelijks een vergoeding voor inbegrepen minuten, waarna ze per minuut worden gefactureerd.Betaal ik een zitplaatsvergoeding voor managed runners?Op runnerhut, nr. Facturering vindt plaats per rekenminuut, zonder kosten per ontwikkelaar.Betaal ik voor de wachtrij?Nee. De facturering begint wanneer uw eerste stap wordt uitgevoerd, niet wanneer de taak in de wachtrij staat.Betaal ik voor zowel de runner als de externe Docker builder?Ja, maar de bouwer wordt alleen gefactureerd voor de seconden die hij actief aan het bouwen is.Hoe wordt een geannuleerde opdracht gefactureerd?U betaalt voor de minuten die zijn verstreken vóór de annulering, afgerond op de facturatiestap.Is er een minimale factuurverhoging?runnerhut rekeningen per seconde met een minimum van één minuut per taak.Hoeveel kosten beheerde GitHub Actions-hardlopers?runnerhut Linux x64 runners beginnen bij $0,004 per minuut, ongeveer de helft van de catalogusprijs van GitHub voor een gelijkwaardig formaat.Wat is de goedkoopste runnermaat?Het kleinste formaat dat uw taak op het kritieke pad houdt: meestal 2 of 4 vCPU voor lint- en unit-tests.Is arm64 goedkoper dan x64?Ja. runnerhut arm64-hardlopers zijn ongeveer 20% lager geprijsd dan de equivalente x64-maat.Is het goedkoper om minder, grotere hardlopers te gebruiken?Alleen als uw werklast daadwerkelijk parallel loopt. Anders betaal je meer per minuut voor cores die inactief zijn.Kan ik een bestedingslimiet instellen?Ja. runnerhut ondersteunt harde budgetplafonds per organisatie en per repository.Wat gebeurt er als de gratis credits op zijn?Er worden geen opdrachten meer gepland totdat u een betaalmethode toevoegt of de limiet verhoogt.Hoe schat ik mijn GitHub Actions-factuur?Vermenigvuldig het maandelijkse aantal minuten per besturingssysteem met het tarief per minuut voor dat besturingssysteem en voeg vervolgens opslagruimte toe voor artefacten en cache.Hoe voorspel ik de uitgaven voor hardlopers?Neem de resterende minuten van 90 dagen per workflow, pas de groei van uw samenvoegingssnelheid toe en voeg speelruimte toe voor matrixwijzigingen.Waarom is mijn GitHub Actions-factuur zo hoog?Meestal een van de vier dingen: macOS-minuten, matrixexplosie, geen annulering van gelijktijdigheid of te grote hardlopers.Betalen openbare opslagplaatsen voor beheerde hardlopers?Op door GitHub gehoste standaardrunners, nee. Op beheerde providers, waaronder runnerhut, ja, maar er zijn open source-programma's beschikbaar.Wat kost Actions-cacheopslag?GitHub voegt kosteloos 10 GB per repository toe en kan verder worden uitgezet. runnerhut cache is onbeperkt en inbegrepen.Hoe wordt de opslag van momentopnamen gefactureerd?Per gigabyte-maand voor de bewaarde momentopname, los van de rekenminuten.Kan ik meer gelijktijdige taken uitvoeren dan mijn GitHub-abonnement toestaat?Ja. Beheerde runner-gelijktijdigheid wordt ingesteld door uw runner-provider, niet door de gehoste runner-limieten van uw GitHub-abonnement.

Prestaties10

Waarom zijn GitHub Actions traag?Meestal: gedeelde vCPU, koude caches, op het netwerk aangesloten schijf en wachtrijtijd voordat de taak zelfs maar begint.Hoe snel starten lopers nadat een taak in de wachtrij staat?runnerhut hardlopers starten in ongeveer drie seconden vanuit een warm zwembad.Moet ik mijn workflow wijzigen?Nee. Wijzig het oplooplabel en laat de rest zoals het is.Hoe kies ik een runnermaat?Begin één maat groter dan je huidige hardloper, controleer vervolgens het CPU-gebruik en stop wanneer de curve afvlakt.Waarom staan mijn opdrachten achter elkaar in de rij?U heeft een gelijktijdigheidslimiet bereikt: die van uw plan, die van uw hardlopergroep of een gelijktijdigheidsgroep in de workflow.Waarom worden mijn Python-tests langzamer uitgevoerd in CI dan lokaal?pytest is standaard serieel en uw laptop heeft snellere single-core prestaties en een warme bestandssysteemcache.Waarom is de NPM-installatie traag in CI?node_modules schrijft tienduizenden kleine bestanden, en een op het netwerk aangesloten CI-schijf gaat daar slecht mee om.Waarom start de Gradle-daemon elke run?Elke CI-taak is een nieuwe machine, dus er is geen daemon die opnieuw kan worden gebruikt – en zonder de configuratiecache evalueert Gradle de hele build opnieuw.Waarom vertoont mijn baan een hoge I/O-wachttijd?De werklast is schijfgebonden, meestal afhankelijk van installatie, extractie van containerlagen of een database in een servicecontainer.Hoeveel taken kunnen er tegelijk worden uitgevoerd?Dit hangt af van uw plan voor door GitHub gehoste hardlopers en van uw geconfigureerde gelijktijdigheid voor beheerde hardlopers.

Caching38

Waarom bouwt Cargo alles opnieuw?Uw cachesleutel verandert bij elke run, of target/ wordt helemaal niet in de cache opgeslagen.Waarom is cacheherstel traag?GitHub beperkt de cachebandbreedte, dus het kan minuten duren voordat een cache van meerdere gigabytes is hersteld.Hoe schrijf ik een goede cachesleutel?Hash precies de bestanden die de inhoud in de cache bepalen (meestal het lockfile) en niets anders.Wat zijn herstelsleutels?Bestelde voorvoegsels geprobeerd wanneer de exacte cachesleutel ontbreekt, zodat een gedeeltelijke overeenkomst nog steeds kan worden hersteld.Waarom mist mijn cache elke run?De sleutel bevat iets dat elke run verandert – meestal github.sha of een tijdstempel.Hoe lang gaan caches mee?GitHub verwijdert caches die zeven dagen lang niet zijn gebruikt, of eerder als de repository groter is dan 10 GB.Hoe wis ik een cache?Verwijder het van de Actions-cachepagina van de repository, of via de REST API of gh CLI.Worden caches verspreid over vestigingen?Een vertakking kan caches van zichzelf en van zijn basisvertakking lezen, maar niet van niet-gerelateerde vertakkingen.Kan ik een cache delen tussen workflows?Op door GitHub gehoste runners, alleen binnen hetzelfde repository- en vertakkingsbereik. runnerhut caches worden gedeeld tussen workflows in de organisatie.Wat is de limiet voor de cachegrootte van GitHub Actions?10 GB per repository, waarna de minst recent gebruikte vermeldingen worden verwijderd.Hoe cache ik node_modules?Cache ~/.npm ingetoetst op package-lock.json, of herstel node_modules rechtstreeks als uw installatie deterministisch is.Hoe kan ik pip-afhankelijkheden in de cache opslaan?Cache ~/.cache/pip ingetoetst op require.txt, of cache de hele virtualenv voor een grotere winst.Hoe cache ik Go-modules?Cache ~/go/pkg/mod en ~/.cache/go-build ingetoetst op go.sum.Hoe cache ik Cargo-afhankelijkheden?Cache ~/.cargo/registry, ~/.cargo/git en target/ ingetoetst op Cargo.lock.Hoe cache ik Maven-afhankelijkheden?Cache ~/.m2/repository ingetoetst op een hash van elke pom.xml.Hoe kan ik Gradle-builds in de cache opslaan?Cache ~/.gradle/caches en ~/.gradle/wrapper en schakel de build- en configuratiecaches in.Hoe cache ik Bundler-edelstenen in de cache?Cacheleverancier/bundel ingetoetst op Gemfile.lock, zodat native extensies één keer worden gecompileerd.Hoe kan ik Composer-afhankelijkheden in de cache opslaan?Cache ~/.composer/cache ingetoetst op composer.lock.Hoe cache ik CocoaPods?Cache Pods/ en ~/Library/Caches/CocoaPods ingetoetst op Podfile.lock.Hoe kan ik Swift Package Manager-afhankelijkheden in de cache opslaan?Cache .build en ~/Library/Caches/org.swift.swiftpm ingetoetst op Package.resolved.Hoe cache ik Yarn Berry?Cache .yarn/cache en .yarn/install-state.gz ingetoetst op garen.lock.Hoe cache ik uv- of poëzie-omgevingen?Cache ~/.cache/uv of ~/.cache/pypoetry ingetoetst op het lockbestand, plus de map .venv.Hoe cache ik Playwright-browsers?Cache ~/.cache/ms-playwright ingetoetst op de Playwright-versie uit uw lockfile.Hoe cache ik Docker-lagen?Gebruik een externe builder die de cache lokaal bewaart, of exporteer naar een register met cache-naar en cache-van.Werkt caching binnen een containertaak?Ja, maar paden binnen de container verschillen van paden op de host, dus cachesleutels moeten verwijzen naar containerpaden.Werken caches in verschillende architecturen?Nee. Gecompileerde artefacten voor x64 zijn niet geldig op arm64, dus architectuur moet deel uitmaken van de sleutel.Werken caches op Windows-hardlopers?Ja, maar padscheidingstekens en hoofdlettergevoeligheid verschillen, dus sleutels en paden hebben Windows-specifieke afhandeling nodig.Hoe bewaar ik een Docker-laagcache tussen pull-aanvragen?Gebruik een persistente externe builder; de cache ervan is niet beperkt tot een branch.Kan ik een gebouwde image in de cache opslaan in plaats van deze opnieuw te bouwen?Ja: push het naar een register dat is getagd met inhoudhash en haal het eruit als de invoer ongewijzigd is.Kan ik een database tussen taken warm houden?Niet bij servicecontainers, die worden tijdens de klus vernietigd. Laad in plaats daarvan een vooraf gemigreerde schemadump.Kan ik Xcode DerivedData tussen uitvoeringen behouden?Ja. Persist ~/Library/Developer/Xcode/DerivedData — het is de grootste overwinning voor iOS CI.Vervangen snapshot-runners acties/cache?Dat kunnen ze. Een momentopname herstelt de gehele machinestatus, zodat de installatiestap verdwijnt in plaats van sneller wordt.Wat wordt meegenomen in een momentopname?Het volledige bestandssysteem in momentopname: geïnstalleerde pakketten, ingebouwde extensies, toolchain-mappen en warme pagina-cache.Hoe maak ik een momentopname ongeldig?Toets het in op uw lockfile-hash, zodat een verandering van afhankelijkheid automatisch een herbouw activeert.Hoe lang duren momentopnamen?Standaard 14 dagen op runnerhut, daarna herbouwd bij volgend gebruik.Kan ik een momentopname maken van een feature branch?Ja, en momentopnamen van filialen zijn van elkaar geïsoleerd.Wat zijn snapshot-lopers?Runners die opstarten vanaf een bestandssysteemimage die is vastgelegd nadat uw afhankelijkheden waren geïnstalleerd, dus de installatie wordt volledig overgeslagen.Werken snapshots op macOS-hardlopers?Ja, en ze zijn daar vooral waardevol omdat CocoaPods en DerivedData beide langzaam opnieuw opgebouwd kunnen worden.

arm6412

Kan GitHub Actions arm64 uitvoeren?Ja. GitHub biedt arm64-hardlopers met betaalde abonnementen, en beheerde providers, waaronder runnerhut, bieden ze aan voor alle abonnementen.Kan ik arm64-images bouwen op een x64-runner?Ja, met QEMU, maar het is 5 tot 40× langzamer dan native bouwen.Wat verandert er bij de overstap van x64 naar arm64?Native modules, Python-wielen en elke x86-assemblage hebben aarch64-ondersteuning nodig. De meeste reguliere afhankelijkheden hebben het nu.Kan ik arm64- en x64-taken in dezelfde workflow uitvoeren?Ja. Gebruik een matrix met een ander runnerlabel per architectuur.Ondersteunen arm64-hardlopers buildx?Ja, en op native arm64-hardware produceert buildx arm64-afbeeldingen zonder emulatie.Kan ik 32-bits ARM-builds uitvoeren op arm64-runners?Ja, via cross-compilatie met een armhf-toolchain, of met multilib-ondersteuning, indien beschikbaar.Hoe voer ik arm64-integratietests uit?Voer de hele taak uit op een native arm64-runner, inclusief eventuele servicecontainers, die arm64-images moeten hebben.Welke arm64 runnermaten zijn beschikbaar?runnerhut biedt 2 tot 64 vCPU arm64-runners op Ubuntu 22.04 en 24.04.Gebruiken arm64-runners een andere werkmap?Nee. De paden komen overeen met de x64-afbeeldingen, dus workflows worden ongewijzigd overgedragen.Hoe bouw ik een Rust binair bestand voor meerdere doelen?Gebruik een matrix met één native runner per doel, in plaats van alles op één machine te kruisen.Kunnen GitHub Actions afbeeldingen met meerdere bogen maken?Ja – met QEMU op één runner, of native op runners per architectuur en samengevoegd in een manifestlijst.Is QEMU of native arm64 sneller?Native, met een factor 5 tot 40, afhankelijk van hoeveel de build compileert.

macOS en iOS15

Ondersteunen GitHub Actions-hardlopers macOS?Ja, zowel door GitHub gehoste als beheerde providers bieden macOS-runners op Apple Silicon.Kan ik iOS-apps bouwen zonder een Mac-runner?Nee. Xcode werkt alleen op macOS, dus voor een iOS-build is een macOS-runner vereist.Is Xcode vooraf geïnstalleerd op macOS-hardlopers?Ja. runnerhut-images leveren verschillende Xcode-versies met bijpassende opdrachtregelhulpmiddelen.Hoe selecteer ik een Xcode-versie?Voer sudo xcode-select -s /Applications/Xcode_16.4.app uit vóór uw buildstappen.Welke Xcode-versies zijn beschikbaar?runnerhut macOS 15-afbeeldingen bevatten Xcode 16.0, 16.2 en 16.4; macOS 14-images bevatten 15.2 en 15.4.Welke macOS-versies worden ondersteund?runnerhut biedt macOS 14- en macOS 15-afbeeldingen op Apple Silicon.Ondersteunt GitHub Actions Apple Silicon?Ja. Zowel door GitHub gehoste als beheerde macOS-runners draaien nu op Apple Silicon.Hoeveel schijfruimte hebben macOS-hardlopers?runnerhut macOS-hardlopers bieden 250 GB tot 1 TB NVMe, afhankelijk van de grootte.Welke simulatorruntimes worden geleverd op macOS-hardlopers?iOS 17.5 tot en met 18.4, plus watchOS-, tvOS- en visionOS-runtimes.Kan ik Docker gebruiken op macOS-hardlopers?Alleen via een Linux VM, die langzaam is. Voer in plaats daarvan Docker-workloads uit op Linux-hardlopers.Kan ik macOS-runners in de EU gebruiken?Ja. runnerhut exploiteert macOS-capaciteit in EU-regio's voor vereisten op het gebied van datalocatie.Kan ik Android- en iOS-builds in één workflow uitvoeren?Ja: gebruik een matrix met een macOS-runner voor iOS en een Linux-runner voor Android.Hoe versnel ik herhaalde Xcode-builds?Houd DerivedData aan tussen uitvoeringen en zet de Xcode-versie vast.Hoe voer ik iOS-tests parallel uit?Verdeel per testdoel of testklasse over verschillende simulators op één grote macOS-runner.Hoe notariseer ik een macOS-app in CI?Gebruik notarytool met een App Store Connect API-sleutel die als geheim is opgeslagen.

Docker17

Hoe kan ik de tijd voor het ophalen van afbeeldingen verkorten?Gebruik een register-pull-through-cache in hetzelfde netwerk als de runner.Hoe reset ik een Docker builder-cache?Voer docker buildx prune uit op de builder, of maak de builder-instantie opnieuw.Ondersteunen externe bouwers multi-platform builds?Ja. runnerhut voert afzonderlijke amd64- en arm64-bouwers uit en voegt de resultaten samen.Hoe push ik een manifestlijst?Bouw elke architectuur per samenvatting en combineer ze vervolgens met docker buildx imagetools create.Waarom is mijn Docker-build traag?Cold layer cache, cache overgedragen via het netwerk, of arm64 gebouwd onder emulatie.Waarom heeft de build van Docker geen schijf meer?Door GitHub gehoste hardlopers hebben ongeveer 14 GB vrij, waardoor grote afbeeldingen en hun laagcache snel uitgeput raken.Waarom maakt een basisimage-update alles ongeldig?Elke laag na FROM is afhankelijk van de samenvatting van de basisafbeelding, dus een nieuwe basis maakt ze allemaal ongeldig.Wat is het verschil tussen cache-van en cache-naar?cache-from importeert een bestaande laagcache; cache-to exporteert de cache die door deze build is geproduceerd.Heb ik buildx nodig?Voor builds op meerdere platforms, cache-mounts of externe bouwers, ja. Voor een eenvoudige constructie met één boog, nee.Wat is een externe Docker-builder?Een persistente BuildKit-instantie waaraan uw taak is gekoppeld, waardoor de laagcache op zijn eigen schijf blijft staan.Hoe wordt een externe bouwer gefactureerd?Per seconde actieve bouwtijd, apart van de hardloperminuten.Kunnen twee banen één bouwer delen?Ja. Matrixpoten en afzonderlijke workflows kunnen aan dezelfde bouwer worden gekoppeld en de cache ervan delen.Hoe bouw en duw ik in één stap?Gebruik docker/build-push-action met push: true.Hoe gebruik ik Docker Bake?Definieer doelen in docker-bake.hcl en voer docker buildx bake in één stap uit.Hoe authenticeer ik bij een privéregister?Gebruik docker/inlogactie met een token, of OIDC voor cloudregisters.Kan ik Docker Compose uitvoeren?Ja. Compose v2 is vooraf geïnstalleerd; gebruik docker compose up -d --wacht zodat de stappen niet sneller opstarten.Kan ik Podman gebruiken in plaats van Docker?Ja. Podman is beschikbaar en is grotendeels CLI-compatibel met Docker.

Beveiliging19

Zijn snapshotrunners veilig voor openbare repository's?Alleen als snapshots worden genomen van vertrouwde branches en nooit van fork-pull-verzoeken.Hoe genereer ik een SBOM?Schakel buildx's sbom: true output in, of voer syft uit tegen de gebouwde image.Hoe voeg ik de herkomst van het gebouw toe?Gebruik actions/attest-build-provenance, of de herkomst van buildx: true attestation.Hoe geef ik geheimen door aan een Docker-build?Gebruik BuildKit om geheimen te bouwen met --secret, nooit ARG of ENV.Zijn GitHub Actions-hardlopers veilig?Door GitHub gehoste en gerenommeerde beheerde runners zijn kortstondige VM's voor eenmalig gebruik, wat het juiste isolatiemodel is.Bewaren hardlopers mijn broncode?Enkel voor de duur van de job. runnerhut vernietigt de VM en wist de schijf wanneer de taak eindigt.Kan het runnerplatform mijn geheimen zien?Geheimen worden in het geheugen van de hardloper gedecodeerd zodat ze kunnen worden gebruikt, dus technisch gezien zou elk hardloperplatform dat kunnen.Hoe stel ik GITHUB_TOKEN rechten in?Voeg een machtigingsblok toe op werkstroom- of taakniveau en wijs alleen de benodigde bereiken toe.Hoe authenticeer ik bij AWS met OIDC?Configureer GitHub als OIDC-provider in IAM en gebruik aws-actions/configure-aws-credentials met een rol.Veranderen beheerde hardlopers mijn GitHub-machtigingen?Nee. Taken worden uitgevoerd met dezelfde GITHUB_TOKEN en dezelfde machtigingen als op door GitHub gehoste runners.Kan ik beperken welke opslagplaatsen mijn hardlopers gebruiken?Ja, met runnergroepen die zich richten op specifieke organisaties of opslagplaatsen.Voldoet runnerhut aan SOC 2?runnerhut onderhoudt SOC 2 Type 2, waarbij het rapport beschikbaar is onder geheimhoudingsverklaring.Waar worden mijn buildgegevens opgeslagen?In de regio die u selecteert. Compute, cache, logs en statistieken zijn allemaal vastgemaakt aan dezelfde regio.Kan ik builds alleen in de EU houden?Ja. Implementaties die alleen in de EU zijn, koppelen rekenkracht, cache, logbestanden en statistieken aan EU-regio's.Kan ik uitgaand verkeer beperken?Ja. Uitgaand beleid is standaard weigeren en staat alleen de bestemmingen toe die u vermeldt.Hoe controleer ik wijzigingen in de runnerconfiguratie?Het auditlogboek registreert actor-, tijdstempel-, bron-IP- en voor/na-waarden voor elke configuratiewijziging.Waar lopen managed runners fysiek?In de datacenters van de provider, of in je eigen cloudaccount onder BYOC.Wat gebeurt er met runner-schijven na een klus?Op runnerhut worden ze cryptografisch gewist en de VM vernietigd.Houden lopers hun status tussen banen?Kortstondige hardlopers doen dat niet. Aanhoudende, zelfgehoste hardlopers doen dat wel, wat een veiligheidsrisico vormt voor openbare opslagplaatsen.

Breng uw eigen wolk mee18

Hebben hardlopers toegang tot mijn privénetwerk?Ja, via BYOC runners in je VPC of een mesh netwerk zoals Tailscale.Kunnen lopers hardlopen in mijn eigen cloudaccount?Ja. BYOC implementeert runners in uw AWS-, GCP- of Azure-account terwijl het controlevlak beheerd blijft.Wat creëert runnerhut in mijn cloudaccount?Een autoscaling-groep, een cache-bucket, een register-pull-through-cache, een scoped IAM-rol en een VPC-eindpunt.Welke AWS-machtigingen heeft BYOC nodig?Machtigingen om zijn eigen automatische schalingsgroep, zijn cachebucket en zijn instantierol te beheren – niets breder.Kan ik mijn eigen VPC gebruiken?Ja. U levert de VPC en subnet-ID's op en runners worden daar geplaatst.Kunnen BYOC-lopers de interne diensten bereiken?Ja, dat is de belangrijkste reden om BYOC te gebruiken. Ze bevinden zich binnen uw netwerk met normale routering.Hebben BYOC-hardlopers een NAT-gateway nodig?Ze hebben uitgaand internet nodig voor het ophalen van afbeeldingen en pakketten, wat meestal een NAT-gateway betekent.Kunnen BYOC-hardlopers in een privé-subnet draaien?Ja, en dat zouden ze ook moeten doen. Uitgaande toegang verloopt via NAT- of VPC-eindpunten.Kan ik een IAM-rol aan een BYOC-loper koppelen?Ja, via een instanceprofiel, zodat taken inloggegevens krijgen zonder enig opgeslagen geheim.Werkt BYOC met IMDSv2?Ja, en IMDSv2 wordt standaard afgedwongen.Kan ik BYOC in meerdere regio's uitvoeren?Ja. Implementeer de module per regio en label hardlopers per regio.Ondersteunt BYOC aangepaste afbeeldingen?Ja. Lever uw eigen AMI- of machine-image aan met uw ingebakken gereedschap.Ondersteunt BYOC Windows?Ja op AWS en Azure. GCP Windows-ondersteuning is beperkter.Ondersteunt BYOC de lokale SSD van GCP?Ja, op machinefamilies die dit aanbieden.Hoe werkt BYOC-facturering?U betaalt uw cloudprovider voor rekenkracht en netwerk, en runnerhut een verlaagd tarief voor het controlevliegtuig.Hoe tag ik BYOC-bronnen?Kostentoewijzingstags instellen in de module Terraform; ze verspreiden zich naar elke gecreëerde hulpbron.Hoe verwijder ik een BYOC-stack?Laat de lopers leeglopen en terraform vernietigt vervolgens de module.Kan ik de uitgang van BYOC-hardlopers controleren?Ja, met beveiligingsgroepen, NACL's en runnerhut uitgaand beleid samen.

Werkstromen30

Naar hoeveel banen kan een matrix uitwaaieren?GitHub beperkt een enkele matrix tot 256 taken per workflowrun.Hoe reproduceer ik een CI-fout lokaal?Zorg dat de afbeelding van de hardloper overeenkomt en SSH vervolgens naar een live hardloper als de fout alleen in CI voorkomt.Kan ik een hardloper worden met SSH?Ja. runnerhut ondersteunt het openen van een foutopsporingssessie voor een actieve taak met een geautoriseerde SSH-sleutel.Kan ik door GitHub gehoste en beheerde hardlopers combineren?Ja. run-on is per taak, dus verschillende taken in één workflow kunnen verschillende providers gebruiken.Hoe verander ik de loper?Bewerk de doorloopwaarde voor de taak. Verder hoeft er niets te veranderen.Hoe voer ik een taak alleen uit als bestanden veranderen?Gebruik paden of paden-negeer op de trigger, of een actie voor wijzigingsdetectie voor een fijnere controle.Hoe voer ik handmatig een workflow uit?Voeg een workflow_dispatch-trigger toe, optioneel met getypte invoer.Hoe voer ik taken volgens een schema uit?Gebruik de schematrigger met cron-syntaxis, in UTC.Hoe annuleer ik verouderde runs?Stel een gelijktijdigheidsgroep in die op de ref is ingetoetst met cancel-in-progress: true.Hoe beperk ik een workflow tot één uitvoering tegelijk?Gebruik een vaste gelijktijdigheidsgroepsnaam met lopende annulering: false.Wat gebeurt er als twee workflows een gelijktijdigheidsgroep delen?Ze serialiseren - de tweede wacht of annuleert de eerste, afhankelijk van de lopende annulering.Hoe stel ik een taaktime-out in?Voeg time-outminuten toe aan de taak. De standaardwaarde is zes uur.Hoe probeer ik een mislukte stap opnieuw?Gebruik een actie voor opnieuw proberen of wikkel de opdracht in een shell-herhalingslus.Hoe hergebruik ik een workflow in verschillende opslagplaatsen?Publiceer een herbruikbare workflow en roep deze aan met workflow_call.Hoe schrijf ik een samengestelde actie?Maak action.yml met runs.using: composiet en een stappenlijst.Hoe gebruik ik matrix opnemen en uitsluiten?toevoegingen of uitbreidingen van combinaties opnemen; uitsluiten verwijdert ze uit het gegenereerde product.Hoe sla ik CI over bij een commit?Voeg [skip ci] toe aan het commit-bericht.Hoe schrijf ik een taakoverzicht?Voeg Markdown toe aan $GITHUB_STEP_SUMMARY.Hoe voer ik een database uit in CI?Declareer het als een servicecontainer met een healthcheck.Hoe publiceer ik een pakket?Gebruik vertrouwde OIDC-publicaties waar het register dit ondersteunt, anders een scoped token in een omgevingsgeheim.Hoe deel ik gegevens tussen vacatures?Upload een artefact in de ene taak en download het in de volgende, of gebruik taakuitvoer voor kleine waarden.Hoe voorkom ik een langzame workflow die implementaties blokkeert?Splits de vereiste cheques op van de adviserende cheques en markeer alleen de snelle, betrouwbare opdrachten als dat nodig is.Hoe voer ik browsertests uit zonder hoofd?Gebruik de headless-vlag voor je hardloper, of xvfb-run voor gereedschap waarvoor een display nodig is.Hoe voer ik Go-racedetectortests uit?Ren, ga test-race. Verwacht ongeveer 2–10× langzamere uitvoering en hoger geheugengebruik.Wat is het verschil tussen een baan en een stap?Een taak draait op één loper en bevat stappen; stappen worden opeenvolgend uitgevoerd in dezelfde werkruimte.Wat is het verschil tussen door GitHub gehoste en zelfgehoste hardlopers?Door GitHub gehoste bestanden worden beheerd, zijn kortstondig en worden per minuut gefactureerd. Zelf-gehoste kunt u op uw hardware gebruiken.Welke besturingssystemen kunnen GitHub Actions uitvoeren?Linux, Windows en macOS, op x64 en arm64 afhankelijk van de provider.Hoe lang worden artefacten bewaard?Standaard 90 dagen, configureerbaar per repository of per upload tot één dag.Hoe debug ik een mislukte taak?Schakel loggen van stapfoutopsporing in, voeg een taakoverzicht toe of open een SSH-sessie op de hardloper.Hoe voer ik een taak alleen uit op pull-aanvragen?Gebruik de pull_request-trigger en een if-voorwaarde voor fijnere controle, zoals het overslaan van concepten.

Waarneembaarheid19

Hoe zie ik de kosten per workflow?Het runnerhut-dashboard verdeelt de uitgaven per workflow, taak, label en repository.Hoe kan ik de kosten per runnerlabel bekijken?Filter het gebruiksdashboard op label om de minuten en uitgaven per hardlopertype te bekijken.Hoe herken ik een ondermaatse loper?Aanhoudende CPU bijna 100%, geheugendruk of swap-activiteit tijdens de taak.Hoe vind ik de langzaamste stap in een workflow?Sorteer de stappen op duur in de hardloopweergave, of gebruik de runnerhut tijdlijn die wachtrij, setup en staptijd afzonderlijk toont.Hoe kom ik erachter welke workflow langzamer is geworden?Vergelijk de p95-duur per workflow maand na maand in het analysedashboard.Hoe meet ik het cachetrefferpercentage?Het runnerhut dashboard rapporteert hitrate, hersteltijd en grootte per cachesleutel.Hoe exporteer ik vacaturegegevens?Gebruik de runnerhut API of de GitHub Actions REST API en schrijf de resultaten naar CSV.Kan een AI-agent mijn CI-statistieken opvragen?Ja, via de runnerhut MCP-server, die builds, duur, mislukkingen en kosten als hulpmiddelen blootlegt.Kunnen AI-agenten CI-taken activeren?Ja, via de API of door branches te pushen, zoals elke andere actor.Welke statistieken geeft de API weer?Wachtrijtijd, duurpercentielen, cachetrefferpercentage, CPU- en geheugengebruik, en kosten per taak, label en workflow.Hoe zie ik het CPU- en geheugengebruik voor een taak?runnerhut registreert automatisch het gebruik per taak en toont dit op de runpagina.Kan ik waarschuwen voor taken met onvoldoende geheugen?Ja. Waarschuwing bij OOM-kills of bij geheugengebruik dat een drempel overschrijdt.Hoe maak ik een wekelijks CI-gezondheidsrapport?Plan een workflow die de metrische API opvraagt en de p95-duur, het cache-hitpercentage, het vlokpercentage en de uitgaven post.Waarom werd mijn baan vermoord met exitcode 137?Dat is een OOM-kill: het proces overschreed het beschikbare geheugen.Waarom is er geen schijf meer in mijn taak?Door GitHub gehoste hardlopers hebben ongeveer 14 GB vrij; Docker-lagen en node_modules zijn zo snel uitgeput.Hebben hardlopers grote schijven?Door GitHub gehoste hardlopers hebben ongeveer 14 GB vrij. runnerhut runners bieden 150 GB tot 2 TB lokale NVMe.Beperken hardlopergroepen de gelijktijdigheid?Dat kunnen ze. Een groep kan een eigen gelijktijdigheidsplafond hanteren, onafhankelijk van uw accountlimiet.Welke GitHub API-snelheidslimieten zijn van invloed op CI?GITHUB_TOKEN is beperkt per repository per uur; workflows die veel API-aanroepen maken, kunnen dit uitputten.Waarom treden er netwerktime-outs op bij mijn taken?Meestal is er sprake van een beperking van de registersnelheid, een knelpunt in de NAT-gateway of een uitgaand beleid dat het verkeer stilletjes laat vallen.