runnerhut
Răspunsuri
Răspunsuri directe la întrebările inginerilor despre CI.
Facturare și cost21
Sunt facturat când o lucrare GitHub Actions eșuează?Da. Sunteți facturat pentru minutele consumate până la punctul de eșec, nu pentru un rezultat reușit.Sunt GitHub Actions gratuite pentru open source?Da, pe runnerele standard găzduite de GitHub pentru depozitele publice, fără nicio taxă pe minut.Sunt GitHub Actions gratuit pentru depozitele private?Nu. Arhivele private primesc o alocație lunară pentru minute incluse în funcție de plan, apoi factură pe minut.Plătesc o taxă de loc pentru alergătorii gestionați?Pe runnerhut, nr. Facturarea se face pe minut de calcul, fără taxă pentru fiecare dezvoltator.Plătesc timpul la coadă?Nu. Facturarea începe atunci când se execută primul pas, nu când lucrarea este pusă în coadă.Plătesc atât pentru alergător, cât și pentru constructorul Docker la distanță?Da, dar constructorul este facturat doar pentru secundele pe care le construiește activ.Cum este facturat un job anulat?Plătiți pentru minutele scurse înainte de anulare, rotunjite la creșterea de facturare.Există o creștere minimă de facturare?runnerhut facturi pe secundă cu un minim de un minut per job.Cât costă alergătorii gestionați GitHub Actions?runnerhut Linux x64 runners încep de la 0,004 USD pe minut, aproximativ jumătate din prețul de listă al GitHub pentru dimensiunea echivalentă.Care este cea mai ieftină dimensiune a alergătorului?Cea mai mică dimensiune care vă menține munca pe calea sa critică - de obicei 2 sau 4 vCPU pentru teste de scame și unitate.Este arm64 mai ieftin decât x64?Da. alergătorii runnerhut arm64 au un preț cu aproximativ 20% mai mic decât dimensiunea x64 echivalentă.Este mai ieftin să alergi mai puțini alergători mai mari?Doar dacă volumul dvs. de lucru realizează paralel. În caz contrar, plătiți mai mult pe minut pentru nucleele care stau inactiv.Pot stabili o limită de cheltuieli?Da. runnerhut acceptă limite bugetare stricte per organizație și per depozit.Ce se întâmplă când creditele gratuite se epuizează?Locurile de muncă nu mai sunt programate până când adăugați o metodă de plată sau ridicați plafonul.Cum îmi estimez factura GitHub Actions?Înmulțiți minutele lunare pentru fiecare sistem de operare cu rata pe minut pentru acel sistem de operare, apoi adăugați spațiu de stocare pentru artefacte și cache.Cum previz cheltuielile alergătorului?Luați 90 de minute în urmă pentru fiecare flux de lucru, aplicați creșterea ratei de îmbinare și adăugați spațiu liber pentru modificările matricei.De ce este atât de mare factura mea de GitHub Actions?De obicei, unul dintre cele patru lucruri: minute macOS, explozie de matrice, fără anulare simultană sau alergători supradimensionați.Arhivele publice plătesc pentru alergătorii gestionați?Pe alergătorii standard găzduiți de GitHub, nu. Pe furnizorii gestionați, inclusiv runnerhut, da, dar sunt disponibile programe open-source.Cât costă stocarea în cache pentru Actions?GitHub include 10 GB per depozit gratuit și evacuează dincolo de aceasta. Cache-ul runnerhut este nelimitat și inclus.Cum este facturată stocarea instantanee?Pe gigabyte-lună pentru instantaneul reținut, separat de minutele de calcul.Pot rula mai multe joburi simultane decât permite planul meu GitHub?Da. Concurența de alergare gestionată este setată de furnizorul de alergători, nu de limitele de alergători găzduiți ale planului GitHub.
Performanță10
De ce sunt GitHub Actions lente?Cel mai frecvent: vCPU partajat, cache la rece, disc atașat la rețea și timp de coadă înainte de începerea lucrării.Cât de repede încep alergătorii după ce un job este pus în coadă?runnerhut alergătorii pornesc în aproximativ trei secunde dintr-un bazin cald.Trebuie să-mi schimb fluxul de lucru?Nu. Schimbați eticheta de rulare și lăsați totul așa cum este.Cum aleg mărimea alergătorului?Începeți cu o dimensiune deasupra alergătorului actual, apoi verificați utilizarea procesorului și opriți-vă când curba se aplatizează.De ce slujbele mele stau una în spatele celuilalt?Ați atins o limită de concurență - fie a planului dvs., a grupului de alergători sau a unui grup de concurență în fluxul de lucru.De ce testele mele Python rulează mai lent în CI decât local?pytest este serial în mod implicit, iar laptopul dvs. are performanțe single-core mai rapide și un cache cald al sistemului de fișiere.De ce instalarea npm este lentă în CI?node_modules scrie zeci de mii de fișiere mici, iar discul CI atașat la rețea se ocupă de asta prost.De ce demonul Gradle începe fiecare rulare?Fiecare job CI este o mașină nouă, așa că nu există niciun demon de reutilizat - și fără memoria cache de configurare, Gradle reevaluează întreaga construcție.De ce slujba mea arată o așteptare mare de I/O?Sarcina de lucru este legată de disc - de obicei, instalarea dependenței, extragerea stratului de container sau o bază de date într-un container de servicii.Câte joburi pot rula simultan?Depinde de planul dvs. pentru alergătorii găzduiți de GitHub și de concurența dvs. configurată pentru alergătorii gestionați.
Memorarea în cache38
De ce Cargo reconstruiește totul?Cheia dvs. de cache se modifică la fiecare rulare sau ținta/ nu este deloc memorată în cache.De ce restaurarea memoriei cache este lentă?GitHub limitează lățimea de bandă a memoriei cache, astfel încât restabilirea unui cache de mai mulți gigaocteți poate dura câteva minute.Cum scriu o cheie cache bună?Hash exact fișierele care determină conținutul stocat în cache - de obicei fișierul de blocare - și nimic altceva.Ce sunt cheile de restaurare?Prefixele ordonate au fost încercate atunci când cheia exactă a memoriei cache ratează, astfel încât o potrivire parțială poate fi încă restaurată.De ce cache-ul meu pierde fiecare rulare?Cheia include ceva care schimbă fiecare rulare - de obicei github.sha sau un marcaj de timp.Cât durează cache-urile?GitHub evacuează memoria cache neutilizată timp de 7 zile sau mai devreme dacă depozitul depășește 10 GB.Cum șterg un cache?Ștergeți-l din pagina de cache Acțiuni a depozitului sau prin API-ul REST sau CLI gh.Cache-urile transportă peste ramuri?O ramură poate citi cache-urile din ea însăși și din ramura sa de bază, dar nu din ramuri neînrudite.Pot partaja o memorie cache între fluxurile de lucru?Pe runnerele găzduite de GitHub, numai în același depozit și domeniu de activitate. Cache-urile runnerhut sunt partajate între fluxurile de lucru din organizație.Care este limita de dimensiune cache a GitHub Actions?10 GB per depozit, după care intrările cele mai puțin utilizate recent sunt evacuate.Cum memorez în cache node_modules?Memorați în cache ~/.npm introdus pe package-lock.json sau restaurați direct node_modules dacă instalarea este deterministă.Cum memorez în cache dependențele pip?Memorați în cache ~/.cache/pip introdus pe requirements.txt sau memorați cache întregul virtualenv pentru un câștig mai mare.Cum pun în cache modulele Go?Cache ~/go/pkg/mod și ~/.cache/go-build introduse pe go.sum.Cum memorez în cache dependențele Cargo?Memorați în cache ~/.cargo/registry, ~/.cargo/git și target/ cheie pe Cargo.lock.Cum memorez în cache dependențele Maven?Cache ~/.m2/repository introdus pe un hash al fiecărui pom.xml.Cum memorez în cache versiunile Gradle?Memorați în cache ~/.gradle/caches și ~/.gradle/wrapper și activați cache-urile de construire și configurare.Cum memorez în cache pietrele Bundler?Furnizorul/pachetul de cache introdus pe Gemfile.lock, astfel încât extensiile native să fie compilate o singură dată.Cum memorez în cache dependențele Composer?Cache ~/.composer/cache introdus pe composer.lock.Cum pun în cache CocoaPods?Cache Pods/ și ~/Library/Caches/CocoaPods introduse pe Podfile.lock.Cum memorez în cache dependențele Managerului de pachete Swift?Cache .build și ~/Library/Caches/org.swift.swiftpm introduse pe Package.resolved.Cum memorez în cache Yarn Berry?Cache .yarn/cache și .yarn/install-state.gz cu cheie pe yarn.lock.Cum memorez în cache mediile UV sau Poetry?Cache ~/.cache/uv sau ~/.cache/pypoetry introdus pe fișierul de blocare, plus directorul .venv.Cum memorez în cache browserele Playwright?Cache ~/.cache/ms-playwright introdus pe versiunea Playwright din fișierul de blocare.Cum pun în cache straturile Docker?Utilizați un generator de la distanță care păstrează memoria cache local sau exportați într-un registru cu cache-to și cache-from.Funcționează memorarea în cache în interiorul unui job container?Da, dar căile din interiorul containerului diferă de căile de pe gazdă, așa că cheile cache trebuie să facă referire la căile containerului.Funcționează cache-urile în diferite arhitecturi?Nu. Artefactele compilate pentru x64 nu sunt valide pe arm64, așa că arhitectura trebuie să facă parte din cheie.Funcționează cache-urile pe Windows Runners?Da, dar separatorii de căi și sensibilitatea majusculelor diferă, așa că cheile și căile necesită o gestionare specifică Windows.Cum păstrez un cache layer Docker între cererile de extragere?Utilizați un generator de la distanță persistent - cache-ul său nu este limitat la o ramură.Pot să memorez în cache o imagine construită în loc să o reconstruiesc?Da — împingeți-l într-un registru etichetat de hash de conținut și trageți-l când intrările sunt neschimbate.Pot păstra o bază de date caldă între joburi?Nu cu containerele de service, care sunt distruse odată cu treaba. În schimb, încărcați un dump de schemă premigrat.Pot păstra Xcode DerivedData între rulări?Da. Persist ~/Library/Developer/Xcode/DerivedData — este cel mai mare câștig unic pentru iOS CI.Snapshot runners înlocuiesc acțiunile/cache-ul?Ei pot. Un instantaneu restabilește întreaga stare a mașinii, astfel încât pasul de instalare dispare în loc să devină mai rapid.Ce se transmite într-un instantaneu?Întregul sistem de fișiere la momentul instantaneului - pachete instalate, extensii construite, directoare lanț de instrumente și cache pentru pagini calde.Cum invalidez un instantaneu?Introduceți-l pe hash-ul fișierului de blocare, astfel încât o modificare a dependenței să declanșeze automat o reconstrucție.Cât durează instantaneele?14 zile în mod implicit pe runnerhut, apoi reconstruit la următoarea utilizare.Pot să fac un instantaneu pe o ramură caracteristică?Da, iar instantaneele de ramuri sunt izolate unele de altele.Ce sunt snapshot runners?Runneri care pornesc dintr-o imagine a sistemului de fișiere capturată după ce dependențele dvs. au fost instalate, așa că instalarea este omisă complet.Funcționează instantaneele pe macOS runners?Da, și sunt deosebit de valoroase acolo, deoarece CocoaPods și DerivedData sunt ambele lente de reconstruit.
braț6412
Poate GitHub Actions rula arm64?Da. GitHub oferă alergătorilor arm64 pe planuri plătite, iar furnizorii gestionați, inclusiv runnerhut, îi oferă pe toate planurile.Pot construi imagini arm64 pe un runner x64?Da, cu QEMU — dar este cu 5–40 ori mai lent decât construirea nativă.Ce se schimbă la trecerea de la x64 la arm64?Modulele native, roțile Python și orice ansamblu x86 au nevoie de suport aarch64. Majoritatea dependențelor mainstream o au acum.Pot rula joburi arm64 și x64 în același flux de lucru?Da. Utilizați o matrice cu o etichetă diferită de rulare în funcție de arhitectură.Alergătorii arm64 acceptă buildx?Da, iar pe hardware-ul nativ arm64 buildx produce imagini arm64 fără emulare.Pot rula versiuni ARM pe 32 de biți pe runner-uri arm64?Da, prin compilare încrucișată cu un lanț de instrumente armhf sau cu suport multilib acolo unde este disponibil.Cum rulez testele de integrare arm64?Rulați întreaga lucrare pe un sistem de rulare arm64 nativ, inclusiv orice containere de service, care trebuie să aibă imagini arm64.Ce mărimi ale alergătorului arm64 sunt disponibile?runnerhut oferă de la 2 până la 64 vCPU arm64 runners pe Ubuntu 22.04 și 24.04.Alergătorii arm64 folosesc un director de lucru diferit?Nu. Căile se potrivesc cu imaginile x64, astfel încât fluxurile de lucru se port fără modificare.Cum construiesc un binar Rust pentru mai multe ținte?Utilizați o matrice cu un alergător nativ pe țintă, în loc să compilați totul pe o singură mașină.Pot GitHub Actions construi imagini cu mai multe arcuri?Da — fie cu QEMU pe un singur alergător, fie nativ pe alergători pe arhitectură și îmbinat într-o listă de manifeste.Este QEMU sau arm64 nativ mai rapid?Nativ, cu un factor de la 5 la 40, în funcție de cât de mult compilează compilarea.
macOS și iOS15
Currenții GitHub Actions acceptă macOS?Da, atât furnizorii găzduiți de GitHub, cât și furnizorii gestionați oferă rulanți macOS pe Apple silicon.Pot construi aplicații iOS fără un rulant Mac?Nu. Xcode rulează doar pe macOS, așa că o versiune iOS necesită un ruler macOS.Este Xcode preinstalat pe macOS runners?Da. Imaginile runnerhut sunt livrate cu mai multe versiuni Xcode cu instrumente de linie de comandă potrivite.Cum selectez o versiune Xcode?Rulați sudo xcode-select -s /Applications/Xcode_16.4.app înainte de pașii de construcție.Ce versiuni Xcode sunt disponibile?Imaginile runnerhut macOS 15 poartă Xcode 16.0, 16.2 și 16.4; Imaginile macOS 14 au 15.2 și 15.4.Ce versiuni de macOS sunt acceptate?runnerhut oferă imagini macOS 14 și macOS 15 pe silicon Apple.GitHub Actions acceptă siliciul Apple?Da. Atât rulerele macOS găzduite de GitHub, cât și cele gestionate, rulează acum pe Apple silicon.Cât disc au alergătorii macOS?runnerhut macOS runners oferă 250 GB până la 1 TB de NVMe, în funcție de dimensiune.Ce timpi de rulare a simulatorului sunt livrate pe macOS Runners?iOS 17.5 până la 18.4, plus timpii de execuție watchOS, tvOS și visionOS.Pot folosi Docker pe macOS runners?Doar printr-un VM Linux, care este lent. Rulați în schimb sarcinile de lucru Docker pe rularele Linux.Pot rula macOS Runners în UE?Da. runnerhut operează capacitatea macOS în regiunile UE pentru cerințele de rezidență a datelor.Pot rula versiuni Android și iOS într-un singur flux de lucru?Da — utilizați o matrice cu un ruler macOS pentru iOS și un rulant Linux pentru Android.Cum accelerez compilările Xcode repetate?Persistați DerivedData între rulări și fixați versiunea Xcode.Cum rulez teste iOS în paralel?Fragment după țintă de testare sau clasă de testare pe mai multe simulatoare pe un singur ruler macOS mare.Cum notific o aplicație macOS în CI?Utilizați notarytool cu o cheie API App Store Connect stocată ca secret.
Windows11
Poate GitHub Actions rula versiuni Windows?Da. Runnerele Windows Server sunt disponibile atât de la GitHub, cât și de la furnizorii gestionați.Pot rula versiuni Windows Server 2022?Da. runnerhut oferă imagini Windows Server 2022 și 2025.Ce versiuni de Windows sunt acceptate?Windows Server 2022 și Windows Server 2025.Visual Studio este preinstalat?Da. Build Tools pentru 2022 și 2025 este livrat cu sarcinile de lucru C++, .NET desktop, ASP.NET și UWP.Cum instalez componente suplimentare Windows SDK?Utilizați vs_installer.exe modify cu --add și ID-ul componentei.De ce rulatorii Windows pornesc mai lent?Windows pornește mai lent și Defender scanează tot ce scrie în casă.Pot rula Docker pe sistemele de rulare Windows?Da, pentru containerele Windows. Containerele Linux necesită virtualizare imbricată.Sistemele de rulare Windows acceptă virtualizarea imbricată?Pe runnerhut, da pe imaginile și dimensiunile Windows Server 2025 care expun Hyper-V.Care este cea mai mică dimensiune Windows Runner?4 vCPU. Dimensiunile mai mici cheltuiesc prea mult din munca pe sistemul de operare pentru a fi utile.Pot rula teste în paralel pe Windows?Da. dotnet test --parallel și MSBuild -m folosesc ambele mai multe nuclee.Cum rulez scripturi PowerShell?Setați shell: pwsh pe pasul pentru PowerShell Core sau shell: powershell pentru Windows PowerShell 5.1.
Docker17
Cum reduc timpul de extragere a imaginii?Utilizați un cache de tip pull-through de registry în aceeași rețea ca și runnerul.Cum resetez un cache al constructorului Docker?Rulați docker buildx prune pe generator sau recreați instanța generatorului.Constructorii de la distanță acceptă versiuni cu mai multe platforme?Da. runnerhut rulează constructori amd64 și arm64 separat și îmbină rezultatele.Cum împing o listă de manifeste?Construiți fiecare arhitectură prin digest, apoi combinați-le cu docker buildx imagetools create.De ce construcția mea Docker este lentă?Cache layer rece, cache transferat prin rețea sau arm64 construit sub emulare.De ce construcția Docker rămâne fără disc?Alergătorii găzduiți de GitHub au aproximativ 14 GB liberi, pe care imaginile mari și cache-ul lor se epuizează rapid.De ce o actualizare a imaginii de bază invalidează totul?Fiecare strat după FROM depinde de rezumatul imaginii de bază, așa că o nouă bază le invalidează pe toate.Care este diferența dintre cache-from și cache-to?cache-from importă un layer cache existent; cache-to exportă memoria cache produsă de această versiune.Am nevoie de buildx?Pentru versiuni multi-platformă, monturi cache sau constructori la distanță, da. Pentru o construcție simplă cu un singur arc, nu.Ce este un generator Docker la distanță?O instanță BuildKit persistentă la care se atașează jobul, care păstrează cache-ul stratului pe propriul disc.Cum este facturat un constructor de la distanță?Pe secundă de timp de construcție activ, separat de minutele alergătorului.Două locuri de muncă pot împărți un singur constructor?Da. Picioarele matricei și fluxurile de lucru separate se pot atașa la același generator și pot partaja memoria cache a acestuia.Cum construiesc și împing într-un singur pas?Utilizați docker/build-push-action cu push: true.Cum folosesc Docker Bake?Definiți ținte în docker-bake.hcl și rulați docker buildx bake într-un pas.Cum mă autentific la un registru privat?Utilizați docker/login-action cu un token sau OIDC pentru registrele cloud.Pot rula Docker Compose?Da. Compose v2 este preinstalat; utilizați docker compose up -d --wait, astfel încât pașii să nu intre în cursă la pornire.Pot folosi Podman în loc de Docker?Da. Podman este disponibil și este în mare parte compatibil CLI cu Docker.
Securitate19
Sunt snapshot runners siguri pentru depozitele publice?Numai dacă instantaneele sunt preluate din ramuri de încredere și niciodată din cererile de extragere furcă.Cum generez un SBOM?Activați sbom buildx: ieșire reală sau rulați syft pe imaginea construită.Cum atașez proveniența construcției?Utilizați acțiuni/attest-build-provenance sau proveniența lui buildx: atestare adevărată.Cum transmit secrete într-o versiune Docker?Utilizați BuildKit build secrets cu --secret, niciodată ARG sau ENV.Sunt alergătorii GitHub Actions în siguranță?Runneri gestionați găzduiți de GitHub și reputați sunt VM-uri efemere de unică folosință, care este modelul de izolare potrivit.Alergătorii îmi stochează codul sursă?Doar pe durata serviciului. runnerhut distruge mașina virtuală și șterge discul acestuia când jobul se termină.Poate platforma alergătorului să-mi vadă secretele?Secretele sunt decriptate în memoria alergătorului pentru a fi utilizate, astfel încât orice platformă de alergător ar putea fi folosit din punct de vedere tehnic.Cum stabilesc permisiunile GITHUB_TOKEN?Adăugați un bloc de permisiuni la nivel de flux de lucru sau de job și acordați numai domeniile necesare.Cum mă autentific la AWS cu OIDC?Configurați GitHub ca furnizor OIDC în IAM și utilizați aws-actions/configure-aws-credentials cu un rol.Alergătorii gestionați îmi schimbă permisiunile GitHub?Nu. Lucrările rulează cu același GITHUB_TOKEN și aceleași permisiuni ca și pe runnerele găzduite de GitHub.Pot restricționa ce depozite folosesc runnerele mele?Da, cu grupuri de alergători vizate de anumite organizații sau depozite.Este runnerhut SOC 2 compatibil?runnerhut menține SOC 2 Tip 2, cu raportul disponibil sub NDA.Unde sunt stocate datele mele de construcție?În regiunea pe care o selectați. Calculul, memoria cache, jurnalele și valorile sunt toate fixate în aceeași regiune.Pot păstra construcții numai în UE?Da. Implementările numai în UE fixează calculul, memoria cache, jurnalele și valorile în regiunile UE.Pot restricționa traficul de ieșire?Da. Politicile de ieșire sunt implicite interzise și permit doar destinațiile pe care le enumerați.Cum auditez modificările configurației runnerului?Jurnalul de audit înregistrează actor, marca temporală, IP sursă și valorile înainte/după pentru fiecare modificare a configurației.Unde aleargă fizic alergătorii gestionați?În centrele de date ale furnizorului sau în propriul cont cloud sub BYOC.Ce se întâmplă cu discurile de rulare după o lucrare?Pe runnerhut acestea sunt șterse criptografic și VM-ul distrus.Alergătorii păstrează starea între locuri de muncă?Alergătorii efemeri nu. Rugătorii persistenti auto-găzduiți fac, ceea ce reprezintă un risc de securitate pentru depozitele publice.
Adu-ți propriul nor18
Pot alergătorii să acceseze rețeaua mea privată?Da, prin alergătorii BYOC în VPC-ul dvs. sau o rețea mesh, cum ar fi Tailscale.Pot alergatorii să alerge în propriul meu cont în cloud?Da. BYOC implementează alergători în contul dvs. AWS, GCP sau Azure în timp ce planul de control rămâne gestionat.Ce creează runnerhut în contul meu în cloud?Un grup de autoscaling, un compartiment de cache, un registry pull-through cache, un rol IAM definit și un punct final VPC.De ce permisiuni AWS are nevoie BYOC?Permisiuni pentru a-și gestiona propriul grup de autoscaling, compartimentul său de cache și rolul său de instanță - nimic mai larg.Pot folosi propriul meu VPC?Da. Dumneavoastră furnizați ID-urile VPC și subrețelei, iar runnerele sunt plasate acolo.Pot alergătorii BYOC să ajungă la serviciile interne?Da, acesta este motivul principal pentru a utiliza BYOC. Ele stau în interiorul rețelei dvs. cu rutare normală.Alergătorii BYOC au nevoie de un gateway NAT?Au nevoie de internet de ieșire pentru imagini și pachete, ceea ce înseamnă de obicei un gateway NAT.Pot alerga alergătorii BYOC într-o subrețea privată?Da, și ar trebui. Accesul de ieșire trece prin punctele finale NAT sau VPC.Pot atașa un rol IAM unui alergător BYOC?Da, printr-un profil de instanță – astfel încât locurile de muncă să primească acreditări fără niciun secret stocat.Funcționează BYOC cu IMDSv2?Da, iar IMDSv2 este aplicat implicit.Pot rula BYOC în mai multe regiuni?Da. Implementați modulul pe regiune și etichetați runneri după regiune.BYOC acceptă imagini personalizate?Da. Furnizați-vă propria imagine AMI sau mașină cu sculele încorporate.BYOC acceptă Windows?Da pe AWS și Azure. Suportul GCP Windows este mai limitat.BYOC acceptă SSD local GCP?Da, pe familiile de mașini care îl oferă.Cum funcționează facturarea BYOC?Plătiți furnizorului dvs. de cloud pentru calcul și rețea, iar runnerhut o taxă redusă pentru avionul de control.Cum etichet resursele BYOC?Setați etichete de alocare a costurilor în modulul Terraform; se propagă la fiecare resursă creată.Cum șterg o stivă BYOC?Scurgeți alergătorii, apoi terraformați distrugeți modulul.Pot controla ieșirea pe alergătorii BYOC?Da, împreună cu grupurile de securitate, NACL-urile și politica de ieșire runnerhut.
Fluxuri de lucru30
Câte locuri de muncă poate face o matrice?GitHub limitează o singură matrice la 256 de joburi per rulare a fluxului de lucru.Cum reproduc local o defecțiune CI?Potriviți imaginea alergătorului, apoi SSH într-un alergător live dacă eșecul apare numai în CI.Pot SSH într-un alergător?Da. runnerhut acceptă deschiderea unei sesiuni de depanare pe o lucrare care rulează cu o cheie SSH autorizată.Pot amesteca alergătorii găzduiți de GitHub și cei gestionați?Da. runs-on este per job, astfel încât diferite joburi dintr-un singur flux de lucru pot folosi diferiți furnizori.Cum schimb alergătorul?Editați valoarea de rulare pentru job. Nimic altceva nu trebuie schimbat.Cum rulez o lucrare numai atunci când fișierele se modifică?Utilizați căi sau căi-ignore pe declanșator sau o acțiune de detectare a modificării pentru un control mai fin.Cum rulez un flux de lucru manual?Adăugați un declanșator workflow_dispatch, opțional cu intrări tastate.Cum rulez joburile conform unui program?Utilizați declanșatorul de planificare cu sintaxa cron, în UTC.Cum anulez alergările înlocuite?Setați un grup de concurență introdus pe ref cu cancel-in-progress: true.Cum limitez un flux de lucru la o singură rulare o dată?Utilizați un nume de grup de concurență fix cu anulare în curs: false.Ce se întâmplă când două fluxuri de lucru au în comun un grup de concurență?Se serializează — al doilea îl așteaptă sau îl anulează pe primul în funcție de anularea în curs.Cum stabilesc un timeout pentru job?Adăugați minute de expirare la job. Valoarea implicită este de șase ore.Cum reîncerc un pas nereușit?Utilizați o acțiune de reîncercare sau împachetați comanda într-o buclă de reîncercare a shell-ului.Cum pot reutiliza un flux de lucru în depozite?Publicați un flux de lucru reutilizabil și apelați-l cu workflow_call.Cum scriu o acțiune compusă?Creați action.yml cu runs.using: composite și o listă de pași.Cum folosesc includerea și excluderea matricei?include adaugă sau extinde combinații; exclude le elimină din produsul generat.Cum omit CI la un commit?Adăugați [skip ci] la mesajul de confirmare.Cum scriu un rezumat al postului?Adăugați Markdown la $GITHUB_STEP_SUMMARY.Cum rulez o bază de date în CI?Declarați-l ca container de serviciu cu un control de sănătate.Cum public un pachet?Utilizați publicarea de încredere OIDC acolo unde registrul o acceptă, în caz contrar, un simbol cu scop într-un secret de mediu.Cum partajez datele între joburi?Încărcați un artefact într-o lucrare și descărcați-l în următoarea sau utilizați rezultate de lucru pentru valori mici.Cum opresc implementarea unui flux de lucru lent care blochează?Împărțiți verificările necesare de cele de consiliere și marcați numai lucrările rapide și de încredere, după cum este necesar.Cum rulez teste de browser fără cap?Utilizați steagul fără cap pentru alergătorul dvs. sau xvfb-run pentru instrumentele care necesită afișaj.Cum rulez testele detectorului de curse Go?Run go test -race. Așteptați-vă la o execuție de aproximativ 2–10 ori mai lentă și o utilizare mai mare a memoriei.Care este diferența dintre un loc de muncă și un pas?O lucrare rulează pe un singur pas și conține pași; pașii rulează secvențial în același spațiu de lucru.Care este diferența dintre alergătorii găzduiți de GitHub și cei auto-găzduiți?Găzduite de GitHub sunt gestionate, efemere și facturate pe minut. Auto-găzduite sunt ale tale pentru a opera, pe hardware-ul tău.Ce sisteme de operare pot rula GitHub Actions?Linux, Windows și macOS, pe x64 și arm64, în funcție de furnizor.Cât timp se păstrează artefactele?90 de zile în mod implicit, configurabil pentru fiecare depozit sau per încărcare până la o zi.Cum depanez o lucrare eșuată?Activați înregistrarea de depanare în etape, adăugați un rezumat al jobului sau deschideți o sesiune SSH pe runner.Cum rulez un job numai la solicitări de extragere?Utilizați declanșatorul pull_request și o condiție if pentru un control mai fin, cum ar fi săriți peste schițe.
Observabilitate19
Cum văd costul pe flux de lucru?Tabloul de bord runnerhut defalcă cheltuielile în funcție de fluxul de lucru, job, etichetă și depozit.Cum văd costul pe etichetă de alergător?Filtrați tabloul de bord de utilizare după etichetă pentru a vedea minutele și cheltuielile pe tip de alergător.Cum detectez un alergător subdimensionat?CPU susținut aproape de 100%, presiune în memorie sau activitate de schimb prin lucrare.Cum găsesc cel mai lent pas dintr-un flux de lucru?Sortați pașii după durată în vizualizarea alergării sau utilizați cronologia runnerhut care afișează separat coada, configurarea și timpul de pas.Cum aflu ce flux de lucru a devenit mai lent?Comparați durata p95 per flux de lucru lună peste lună în tabloul de bord de analiză.Cum măsoară rata de accesare a memoriei cache?Tabloul de bord runnerhut raportează rata de accesare, timpul de restaurare și dimensiunea per tastă de cache.Cum export datele despre job?Utilizați API-ul runnerhut sau GitHub Actions API-ul REST și scrieți rezultatele în CSV.Poate un agent AI să interogheze valorile mele CI?Da, prin serverul MCP runnerhut, care expune build-urile, duratele, eșecurile și costurile ca instrumente.Pot agenții AI să declanșeze joburi CI?Da, prin API sau prin împingerea ramurilor, ca orice alt actor.Ce valori expune API-ul?Timpul în coadă, percentilele de durată, rata de accesare a memoriei cache, utilizarea CPU și a memoriei și costul pe job, etichetă și flux de lucru.Cum văd utilizarea CPU și a memoriei pentru o lucrare?runnerhut înregistrează automat utilizarea per loc de muncă și o afișează pe pagina de rulare.Pot avertiza cu privire la lucrările fără memorie?Da. Alertă privind uciderea OOM sau utilizarea memoriei care depășește un prag.Cum produc un raport săptămânal de sănătate CI?Programați un flux de lucru care interogează API-ul pentru valori și postează durata p95, rata de accesare a memoriei cache, rata de pierdere și cheltuielile.De ce slujba mea a fost ucisă cu codul de ieșire 137?Aceasta este o ucidere OOM - procesul a depășit memoria disponibilă.De ce mi-a rămas slujba fără disc?alergătorii găzduiți de GitHub au aproximativ 14 GB liberi; Straturile Docker și modulele_noduri se epuizează atât de repede.Alergătorii au discuri mari?Alergătorii găzduiți de GitHub au aproximativ 14 GB gratuit. alergătorii runnerhut oferă 150 GB până la 2 TB de NVMe local.Grupurile de alergători limitează concurența?Ei pot. Un grup poate avea propriul plafon de concurență independent de limita contului dvs.Ce limite de rată a API-ului GitHub afectează CI?GITHUB_TOKEN este limitat pe depozit pe oră; fluxurile de lucru care efectuează multe apeluri API îl pot epuiza.De ce joburile mele ajung la expirarea rețelei?De obicei, limitarea ratei de registry, un blocaj al gateway-ului NAT sau o politică de ieșire care reduce traficul.