Utforska löpare

Slutförd

GitHub-löpare är beräkningsresurser som kör GitHub Actions-arbetsflöden. Varje löpare kan köra ett enda jobb i taget. De gör det möjligt för utvecklare att utföra bygg-, test- och distributionsuppgifter direkt från GitHub-lagringsplatser. Det finns två huvudsakliga typer av GitHub-löpare:

  • GitHub-värdbaserade löpare är virtualiserade eller containerbaserade beräkningsresurser som tillhandahålls och hanteras av GitHub.
  • Lokalt installerade löpare är fysiska, virtualiserade eller containerbaserade beräkningsresurser som GitHub-användare och organisationer etablerar och hanterar själva.

Varje typ har vissa unika egenskaper, har ett antal olika funktioner och garanterar flera olika överväganden.

Det är viktigt att observera att GitHub starkt rekommenderar att du inte använder lokalt installerade löpare i offentliga lagringsplatser. Detta medför en betydande säkerhetsrisk, eftersom det potentiellt gör det möjligt för vem som helst att köra kod i organisationens privata miljö.

GitHub-värdbaserade löpare

GitHub-värdbaserade löpare erbjuder en praktisk lösning för att köra arbetsflöden i GitHub Actions, vilket eliminerar behovet av att administrera underliggande maskinvaru- och programvarukomponenter. De är utformade för att skalas automatiskt baserat på efterfrågan, vilket ger optimala prestanda under perioder med hög användning. GitHub tillhandahåller flera förkonfigurerade miljöer för GitHub-värdbaserade löpare som täcker olika programvarukonfigurationer och operativsystem, inklusive Ubuntu Linux, Microsoft Windows och macOS.

GitHub-värdbaserade löpare innehåller operativsystemets standardinbyggda verktyg. Till exempel inkluderar Ubuntu- och macOS-löpare grep, find och which. För att identifiera alla andra verktyg som är förinstallerade på löpare kan användarna granska programvarufakturan (SBOM) för varje version av Windows- och Ubuntu-runneravbildningarna. Alternativt kan användarna granska underavsnittet Runner Image i avsnittet Konfigurera jobb i arbetsflödesloggar. Länken som följer posten Inkluderad programvara beskriver alla förinstallerade verktyg på löparen som körde arbetsflödet. Det går också att installera ytterligare programvara på GitHub-värdbaserade löpare genom att skapa ett jobb som installerar paketen som en del av det befintliga arbetsflödet.

GitHub-värdbaserade löpare körs på GitHubs molninfrastruktur och använder virtuella datorer eller containrar för att köra arbetsflöden. Varje arbetsflödeskörning är isolerad i sin egen miljö, vilket säkerställer säkerhet och reproducerbarhet. GitHub-värdbaserade löpare integreras sömlöst med GitHub Actions, vilket gör det möjligt för användare att referera till dem direkt i arbetsflöden som finns i GitHub-lagringsplatser.

Det finns vissa begränsningar för Användning av GitHub Actions när du använder GitHub-värdbaserade löpare. I synnerhet har varje jobb i ett arbetsflöde högst 6 timmars körningstid. Om ett jobb når den här gränsen avslutas jobbet och kan inte slutföras. Varje arbetsflödeskörning är begränsad till 35 dagar. Om en arbetsflödeskörning når den här gränsen avbryts körningen. Den här perioden omfattar körningstid och tid som ägnas åt väntan och godkännande.

Förutsättningar

Innan du implementerar GitHub-värdbaserade löpare måste användarna ha en GitHub-lagringsplats där de kan definiera arbetsflöden med GitHub Actions. Löpare är tillgängliga för alla GitHub-användare med åtkomst till GitHub Actions.

Implementering

Till skillnad från lokalt installerade löpare etableras GitHub-värdbaserade som en del av en enskild arbetsflödeskörning automatiskt. Användare definierar arbetsflöden som YAML-formaterade filer som lagras i katalogen .github/workflows i GitHub-lagringsplatser. I arbetsflödeskonfigurationen anger användarna önskad runner-miljö, inklusive operativsystem- och programvaruberoenden. Löpare med matchande specifikationer ställs in på begäran när arbetsflödet utlöses, med en löpare per jobb. Utlösare kan vara antingen manuella eller automatiska, baserat på händelser som kod push-överföring, pull-begäranden eller lagringsplatsens sändningshändelser.
GitHub-värdbaserade löpare autentiserar med GitHub med hjälp av token eller autentiseringsuppgifter som tillhandahålls av GitHub Actions. De förlitar sig på inbyggd anslutning för att kommunicera med GitHub-plattformen och för att ladda ned arbetsflödesartefakter.

Underhåll

GitHub hanterar uppdateringar och underhåll av GitHub-värdbaserade löpare, vilket säkerställer att de är uppdaterade med de senaste programvaruversionerna och säkerhetskorrigeringarna. De programvaruverktyg som ingår i löparna uppdateras varje vecka. Runner-aktiviteter övervakas och loggas, vilket underlättar spårning av arbetsflödeskörningar och felsökning.

Licensiering och kostnad

GitHub-värdbaserade löpare ingår i prissättningen för GitHub Actions, med användningsbaserad fakturering för arbetsflödesminuter utöver den kostnadsfria nivån. Användarna drar nytta av den automatiserade och kostnadseffektiva skalningen, eftersom GitHub automatiskt etablerar och frigör löpare baserat på efterfrågan.

Egenvärdade löpare

Jämfört med GitHub-värdbaserade löpare ger lokalt installerade alternativ större kontroll- och anpassningsalternativ, med körningsmiljöer som kan ta emot ett bredare utbud av krav. De kan distribueras lokalt eller i molnet, beroende på kriterier som nätverksanslutning, kostnad och resurstillgänglighet.

Lokalt installerade löpare etableras och hanteras av användare, vilket ger dem fullständig kontroll över körningsmiljön. De är helt anpassningsbara, inklusive maskinvaruspecifikationer, programvarukonfigurationer och nätverksinställningar. De underlättar också integrering med befintlig infrastruktur och verktyg, vilket minimerar risken för kompatibilitets- och samverkansproblem.

Till skillnad från med GitHub-värdbaserade löpare finns det inga gränser för hur mycket tid det tar att slutföra enskilda jobbkörningar och arbetsflödeskörningar.

Förutsättningar

Användarna måste konfigurera lokalt installerade löpare i sin valda infrastruktur, inklusive installation av löparprogramvaran och eventuella ytterligare programvaruberoenden. Källkoden för de lokalt installerade löparna är tillgänglig som ett projekt med öppen källkod på GitHub på https://github.com/actions/runner. Varje lokalt installerad löpare fungerar som en agent som kommunicerar med GitHub Actions för att köra arbetsflöden.

Lokala löpare kräver utgående nätverksanslutning, autentiseringsuppgifter och auktorisering för att få åtkomst till GitHub-plattformen och ladda ned arbetsflödesartefakter. Beroende på platsen för löparna kan det vara nödvändigt att konfigurera brandväggsregler för att uppfylla dessa krav.

Implementering

Precis som med GitHub-värdbaserade löpare innebär implementeringen att definiera YAML-formaterade arbetsflöden och lagra dem katalogen .github/workflows i GitHub-lagringsplatser. Men för att arbetsflöden ska kunna använda lokalt installerade löpare måste användarna registrera dem först och tillhandahålla nödvändiga autentiseringstoken eller autentiseringsuppgifter. Som en del av registreringen anger användarna sådana egenskaper som parametrarna för löparens namn, etiketter och körningsmiljö.

Registreringen kan ske på olika nivåer inom ett företag:

  • Lagringsplatsnivå (enskild lagringsplats)
  • Organisationsnivå (flera lagringsplatser i en organisation)
  • Företagsnivå (flera organisationer i ett företag)

Underhåll

Användarna ansvarar för att uppdatera och underhålla lokalt installerade löpare, inklusive installation av programuppdateringar och säkerhetskorrigeringar. Underhållet omfattar även övervakning av löpares hälsa och prestanda samt felsökning av eventuella problem som uppstår under körningen av löparen.

Licensiering och kostnad

Lokalt installerade löpare debiteras inte ytterligare licensavgifter utöver prissättningen för GitHub Actions och eventuella tillhörande infrastrukturkostnader, inklusive beräkning, lagring och nätverk. Att optimera resursallokering och resursanvändning blir användarens ansvar.