Automatiseer je workflow met GitHub Actions

GitHub Actions maakt continue integratie mogelijk en een breed scala aan automatisering geconfigureerd vanuit je repository. Je kunt je eigen acties maken, acties gebruiken en aanpassen die worden gedeeld door de GitHub-community, of de acties die je hebt gebouwd schrijven en delen. Om de acties die je hebt gebouwd te delen, moet je repository openbaar zijn. 

GitHub Actions ondersteunt Windows, Linux en MacOs en je kunt elke programmeertaal draaien die wordt ondersteund door deze besturingssystemen. 

Development
13 april 2020
Martijn van der Put

Automatiseer workflows

Automatisering wordt bereikt door workflows te definiëren. Een workflow bestaat uit één of meer taken die acties worden genoemd. Deze acties kunnen automatisch worden uitgevoerd bij bepaalde gebeurtenissen. 

Je kunt acties maken door aangepaste code te schrijven die communiceert met je repository en integreert met de API's van GitHub en elke openbaar beschikbare API van derden. Bijvoorbeeld, een actie kan npm-modules uitvoeren, SMS-meldingen verzenden wanneer cruciale problemen worden aangemaakt, of productieklare code implementeren.

Acties kunnen rechtstreeks op een machine of in een Docker-container worden uitgevoerd. Je kunt de invoer, uitvoer en omgevingsvariabelen van een actie definiëren.


 Voordelen

GitHub Actions: 

  • Kan rechtstreeks worden uitgevoerd op runner machines of in Docker-containers. 
  • Kan toegang bieden tot een kloon van je repository, waardoor implementatie- en publicatietools, codeformatters en opdrachtregelhulpmiddelen toegang hebben tot je code. 
  • Biedt automatisering die continue integratie en continue implementatie kan voltooien. 
  • Vereist geen implementatie van code of het aanbieden van een app.
  • Heeft een eenvoudige interface om geheimen te genereren en te gebruiken, waardoor acties kunnen communiceren met diensten van derden zonder de referenties van de persoon die de actie gebruikt op te slaan.


Soorten GitHub Actions

Acties vereisen een metagegevensbestand om de invoer, uitvoer en het hoofdpunt voor je actie te definiëren. De naam van het metagegevensbestand moet ofwel action.yml of action.yaml zijn. Je kunt Docker-container- en JavaScript-acties bouwen.

  • Docker-containers verpakken de omgeving samen met de GitHub Actions-code. Dit creëert een verder betrouwbare en consistente eenheid van werk, omdat de gebruiker van de actie zich geen zorgen hoeft te maken over de tools of afhankelijkheden. Docker-containeracties kunnen alleen worden uitgevoerd in de GitHub-gehoste Linux-omgeving.
  • JavaScript-acties kunnen rechtstreeks worden uitgevoerd op een runner machine en scheiden de actiecode van de omgeving die wordt gebruikt om de code uit te voeren. Het gebruik van een JavaScript-actie maakt de actiecode eenvoudiger en voert sneller uit dan een Docker-containeractie.


Belangrijke concepten

Hieronder wordt een algemeen begrip gegeven van enkele prominente kernconcepten die worden gebruikt in GitHub Actions.

  • Acties: Acties zijn de kleinste draagbare bouwstenen van een workflow en kunnen worden gecombineerd als stappen om een taak te creëren. Je kunt je eigen acties maken of gebruikmaken van en aanpassen van publiekelijk gedeelde acties door de GitHub-community.
  • Gebeurtenis: Gebeurtenissen zijn specifieke activiteiten die een workflowstart activeren. Bijvoorbeeld, een workflow wordt geactiveerd wanneer iemand naar de repository push of wanneer een pullverzoek wordt aangemaakt. Gebeurtenissen kunnen ook worden geconfigureerd om externe gebeurtenissen te beluisteren met behulp van webhooks.
  • Runner: Een runner is een machine met de GitHub Actions runner-toepassing geïnstalleerd. De runner wacht op beschikbare taken die het vervolgens kan uitvoeren. Na het ophalen van een taak voert het de acties van de taak uit en rapporteert het de voortgang en resultaten terug naar GitHub. Runners kunnen worden gehost op GitHub of zelf gehost worden op je eigen machines/servers.
  • Taak: Een taak bestaat uit meerdere stappen en wordt uitgevoerd in een instantie van de virtuele omgeving. Taken kunnen onafhankelijk van elkaar worden uitgevoerd of sequentieel als de huidige taak afhankelijk is van de vorige taak om succesvol te zijn.
  • Stap: Een stap is een set taken die kunnen worden uitgevoerd door een taak. Stappen kunnen opdrachten of acties uitvoeren.
  • Workflow: Workflows zijn aangepaste geautomatiseerde processen die je kunt instellen in je repository om elk project op GitHub te bouwen, testen, verpakken, vrijgeven of implementeren. Workflows worden gedefinieerd met behulp van een YAML-bestand in de .github/workflows map in je repository.


Voorbeelden GitHub Actions

GitHub Actions maken het eenvoudig om een uitgebreide variatie aan DevOps-automatiseringstaken uit te rollen. De onderstaande voorbeelden tonen CI/CD en automatisering met behulp van GitHub Actions.

Voorbeeld 1: Continue integratie

Continue Integratie (CI) automatiseert het proces van het testen en bouwen van je code voordat deze wordt samengevoegd. Als goede praktijk moeten ontwikkelaars hun wijzigingen dagelijks of vaker (indien nodig) committen of integreren in de hoofd gedeelde repository.

.github/workflows/workflow.yml



Voorbeeld 2: Publiceer pakket naar NPM bij release

Als je een open source pakket onderhoudt, kan het eentonig zijn om je pakket opnieuw te publiceren na het maken van een nieuwe release. Je kunt de onderstaande workflow gebruiken om automatisch een pakket te publiceren naar NPM of GitHub Package Registry.

.github/workflows/workflow.yml



Voorbeeld 3: Email- of chatberichten verzenden

Om de gegevens van GitHub naar een chat- of e-mailservice te posten, zoals Slack.

.github/workflows/workflow.yml


Conclusie

Je kunt GitHub Actions gebruiken om je GitHub-workflow te automatiseren. GitHub Actions vereisen minimale configuratie voor gebruik, bijvoorbeeld - Een eenvoudige knop op de pagina van je GitHub-repository activeert de configuratie van een CI/CD-pijplijn en dit stelt de ontwikkelaar in staat zich te richten op ontwikkeling in plaats van het opzetten van servers voor Jenkins of het aanmelden bij andere leveranciers zoals CircleCI.


Wil je meer informatie? Neem dan contact op.

Cookies
Deze site gebruikt geanonimiseerde cookies. Klik op "Akkoord" als je akkoord gaat met het gebruik van cookies, of klik op "Aanpassen" om je voorkeuren te bepalen.
Deze site gebruikt geanonimiseerde cookies.