Runners verkennen

Voltooid

GitHub-runners zijn rekenresources die GitHub Actions-werkstromen uitvoeren. Elke runner kan één taak tegelijk uitvoeren. Ze stellen ontwikkelaars in staat om rechtstreeks vanuit GitHub-opslagplaatsen build-, test- en implementatietaken uit te voeren. Er zijn twee hoofdtypen GitHub-runners:

  • Door GitHub gehoste runners zijn gevirtualiseerde of in containers geplaatste rekenresources die worden geleverd en beheerd door GitHub.
  • Zelf-hostende runners zijn fysieke, gevirtualiseerde of containerresources die GitHub-gebruikers en -organisaties zelf inrichten en beheren.

Elk type heeft enkele unieke kenmerken, heeft een aantal verschillende mogelijkheden en garandeert verschillende overwegingen.

Het is belangrijk om te weten dat GitHub het gebruik van zelf-hostende runners in openbare opslagplaatsen ten zeerste aanbeveelt. Hierdoor ontstaat een aanzienlijk beveiligingsrisico, omdat iedereen mogelijk code kan uitvoeren in de privéomgeving van de organisatie.

Door GitHub gehoste hardlopers

GitHub-gehoste hardlopers bieden een handige oplossing voor het uitvoeren van werkstromen in GitHub Actions, waardoor de onderliggende hardware- en softwareonderdelen niet meer hoeven te worden beheerd. Ze zijn ontworpen om automatisch te schalen op basis van de vraag, waardoor optimale prestaties worden gegarandeerd tijdens piekperioden van het gebruik. GitHub biedt verschillende vooraf geconfigureerde omgevingen voor door GitHub gehoste hardlopers, die betrekking hebben op verschillende softwareconfiguraties en besturingssystemen, waaronder Ubuntu Linux, Microsoft Windows en macOS.

GitHub-gehoste runners bevatten de standaard ingebouwde hulpprogramma's van het besturingssysteem. Ubuntu- en macOS-hardlopers bevatten bijvoorbeeld grep, find en welke. Om alle andere hulpprogramma's te identificeren die vooraf zijn geïnstalleerd op hardlopers, kunnen gebruikers de softwarefactuur van materialen (SBOM) voor elke build van de Windows- en Ubuntu-runner-installatiekopieën bekijken. Gebruikers kunnen ook de subsectie Runner Image van de sectie Taak instellen in werkstroomlogboeken bekijken. De koppeling na de vermelding Opgenomen software beschrijft alle vooraf geïnstalleerde hulpprogramma's op de runner die de werkstroom heeft uitgevoerd. Het is ook mogelijk om extra software te installeren op door GitHub gehoste runners door een taak te maken waarmee de pakketten worden geïnstalleerd als onderdeel van de bestaande werkstroom.

Op GitHub gehoste hardlopers worden uitgevoerd in de cloudinfrastructuur van GitHub, waarbij gebruik wordt gemaakt van virtuele machines of containers om werkstromen uit te voeren. Elke werkstroomuitvoering wordt geïsoleerd binnen een eigen omgeving en zorgt voor beveiliging en reproduceerbaarheid. GitHub-gehoste runners kunnen naadloos integreren met GitHub Actions, zodat gebruikers er rechtstreeks naar kunnen verwijzen binnen werkstromen die worden gehost in GitHub-opslagplaatsen.

Er gelden enkele limieten voor het gebruik van GitHub Actions bij het gebruik van door GitHub gehoste runners. In het bijzonder heeft elke taak in een werkstroom het maximum van 6 uur uitvoeringstijd. Als een taak deze limiet bereikt, wordt de taak beëindigd en kan deze niet worden voltooid. Elke werkstroomuitvoering is beperkt tot 35 dagen. Als een werkstroomuitvoering deze limiet bereikt, wordt de uitvoering geannuleerd. Deze periode omvat de uitvoeringsduur en de tijd die is besteed aan wachten en goedkeuren.

Vereisten

Voordat gitHub-gehoste runners worden geïmplementeerd, moeten gebruikers een GitHub-opslagplaats hebben waar ze werkstromen kunnen definiëren met behulp van GitHub Actions. Runners zijn beschikbaar voor alle GitHub-gebruikers met toegang tot GitHub Actions.

Implementatie

In tegenstelling tot zelf-hostende runners worden door GitHub gehoste lopers automatisch ingericht als onderdeel van een afzonderlijke werkstroomuitvoering. Gebruikers definiëren werkstromen als bestanden met YAML-indeling die zijn opgeslagen in de map .github/workflows in GitHub-opslagplaatsen. Binnen de werkstroomconfiguratie geven gebruikers de gewenste runner-omgeving op, inclusief het besturingssysteem en softwareafhankelijkheden. Runners met overeenkomende specificaties worden op aanvraag ingesteld wanneer de werkstroom wordt geactiveerd, met één runner per taak. Triggers kunnen handmatig of automatisch zijn, op basis van gebeurtenissen zoals codepushes, pull-aanvragen of verzendingsgebeurtenissen van opslagplaatsen.
GitHub-gehoste runners verifiëren met GitHub met behulp van tokens of referenties die door GitHub Actions worden verstrekt. Ze zijn afhankelijk van ingebouwde connectiviteit om te communiceren met het GitHub-platform en om werkstroomartefacten te downloaden.

Onderhoud

GitHub beheert updates en onderhoud van door GitHub gehoste hardlopers, zodat ze up-to-date blijven met de nieuwste softwareversies en beveiligingspatches. De softwarehulpprogramma's die in de runners zijn opgenomen, worden wekelijks bijgewerkt. Runner-activiteiten worden bewaakt en geregistreerd, waardoor het bijhouden van werkstroomuitvoeringen en probleemoplossing wordt vergemakkelijkt.

Licenties en kosten

GitHub-gehoste runners zijn opgenomen in de prijzen voor GitHub Actions, met facturering op basis van gebruik voor werkstroomminuten buiten de gratis laag. Gebruikers profiteren van geautomatiseerde en kostenefficiënte schaalaanpassing, omdat GitHub hardlopers automatisch inbouwt en de toewijzing ervan ongedaan maakt op basis van de vraag.

Zelf-hostende hardlopers

Vergeleken met door GitHub gehoste hardlopers bieden zelf-hostende hardlopers meer controle- en aanpassingsopties, met uitvoeringsomgevingen die een breder scala aan vereisten kunnen bieden. Ze kunnen on-premises of in de cloud worden geïmplementeerd, afhankelijk van criteria zoals netwerkconnectiviteit, kosten en beschikbaarheid van resources.

Zelf-hostende hardlopers worden ingericht en beheerd door gebruikers, waardoor ze volledige controle hebben over de uitvoeringsomgeving. Ze zijn volledig aanpasbaar, waaronder hardwarespecificaties, softwareconfiguraties en netwerkinstellingen. Ze vergemakkelijken ook integratie met bestaande infrastructuur en hulpprogramma's, waardoor de mogelijkheid van compatibiliteits- en interoperabiliteitsproblemen wordt geminimaliseerd.

In tegenstelling tot bij door GitHub gehoste runners, zijn er geen limieten voor de tijd die nodig is om afzonderlijke taakuitvoeringen en werkstroomuitvoeringen te voltooien.

Vereisten

Gebruikers moeten zelf-hostende runners instellen en configureren op hun gekozen infrastructuur, inclusief het installeren van de runner-software en eventuele aanvullende softwareafhankelijkheden. De broncode voor de zelf-hostende hardlopers is beschikbaar als een opensource-project op GitHub op https://github.com/actions/runner. Elke zelf-hostende runner fungeert als een agent die communiceert met GitHub Actions om werkstromen uit te voeren.

Zelf-hostende runners vereisen uitgaande netwerkconnectiviteit, verificatiereferenties en autorisatie voor toegang tot het GitHub-platform en het downloaden van werkstroomartefacten. Afhankelijk van de locatie van de runners, kan het nodig zijn om firewallregels te configureren om aan deze vereisten te voldoen.

Implementatie

Net als bij door GitHub gehoste runners omvat de implementatie het definiëren van werkstromen in YAML-indeling en het opslaan van de map .github/workflows in GitHub-opslagplaatsen. Om werkstromen zelf-hostende hardlopers te kunnen gebruiken, moeten gebruikers ze echter eerst registreren, waarbij ze de vereiste verificatietokens of -referenties opgeven. Als onderdeel van de registratie geven gebruikers dergelijke kenmerken op als de naam, labels en uitvoeringsomgevingsparameters van de runner.

De registratie kan plaatsvinden op verschillende niveaus binnen een onderneming:

  • Opslagplaatsniveau (één opslagplaats)
  • Organisatieniveau (meerdere opslagplaatsen in een organisatie)
  • Ondernemingsniveau (meerdere organisaties binnen een onderneming)

Onderhoud

Gebruikers zijn verantwoordelijk voor het bijwerken en onderhouden van zelf-hostende hardlopers, waaronder het installeren van software-updates en beveiligingspatches. Onderhoud omvat ook het bewaken van de status en prestaties van runners, en het oplossen van eventuele problemen die zich voordoen tijdens de runtime van de runner.

Licenties en kosten

Voor zelf-hostende hardlopers worden geen extra licentiekosten in rekening gebracht buiten de prijzen voor GitHub Actions en eventuele bijbehorende infrastructuurkosten, waaronder reken-, opslag- en netwerkkosten. Het optimaliseren van resourcetoewijzing en -gebruik wordt de verantwoordelijkheid van de gebruiker.