DevOps-bootcamp · Les

Aangepaste GitHub Actions ontwikkelen

Leer uw eigen herbruikbare aangepaste Actions te maken met JavaScript of Docker om de functionaliteit van GitHub Actions uit te breiden.

Les 1 van 412 stappen

Aangepaste GitHub Actions ontwikkelen is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

GitHub Actions uitbreiden

Wat als je een specifieke taak in je workflow nodig hebt die GitHub Actions niet standaard aanbiedt? Of misschien heb je complexe logica die je opnieuw wilt gebruiken?

Met aangepaste Actions kun je je eigen herbruikbare tools voor workflows bouwen. Het zijn kleine programma's die een specifieke taak uitvoeren, afgestemd op je behoeften.

De kracht van maatwerk

Aangepaste Actions bieden verschillende voordelen voor je CI/CD-pijplijnen:

  • Herbruikbaarheid: Schrijf één keer en gebruik het in meerdere workflows en opslagplaatsen.
  • Standaardisatie: Zorg voor consistente processen binnen je organisatie.
  • Inkapseling: Verberg complexe logica achter een eenvoudige interface.
  • Integratie: Communiceer met specifieke interne tools of API's.

JavaScript of Docker?

GitHub Actions ondersteunt twee primaire manieren om aangepaste Actions te maken:

  • JavaScript Actions: Deze worden geschreven in JavaScript (of TypeScript) en rechtstreeks uitgevoerd op de runnermachine. Ze zijn snel en eenvoudig voor simpele taken.
  • Docker-container-Actions: Verpak je omgeving en code in een Docker-image. Ideaal voor Actions die specifieke afhankelijkheden of programmeertalen vereisen.

Je Action definiëren

Elke aangepaste Action heeft een action.yml-bestand nodig in de hoofdmap. Dit YAML-bestand werkt als een manifest dat GitHub Actions over je Action vertelt:

  • name en description: Wat je Action doet.
  • inputs: Gegevens die je Action accepteert.
  • outputs: Gegevens die je Action produceert.
  • runs: Hoe je Action wordt uitgevoerd (bijvoorbeeld als JavaScript-bestand of Docker-image).

Eenvoudig JS Action-voorbeeld

Laten we naar een eenvoudige JavaScript Action kijken. Je hebt een action.yml- en een index.js-bestand nodig. Het action.yml-bestand definieert de metagegevens en uitvoeringsomgeving van de Action.

# action.yml
name: 'Hello World Action'
description: 'Greets a person using a custom message'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'World'
outputs:
  greeting-message:
    description: 'The greeting message generated'
runs:
  using: 'node16'
  main: 'index.js'

De JavaScript schrijven

Het index.js-bestand bevat de daadwerkelijke logica. We gebruiken de @actions/core-toolkit om invoer op te halen en uitvoer in te stellen.

Probeer dit eenvoudige JavaScript-fragment uit te voeren om te zien hoe invoer en uitvoer conceptueel werken, zelfs buiten een volledige workflow:

// index.js (simplified for demonstration)
const core = require('@actions/core');

try {
  const name = core.getInput('who-to-greet');
  const message = `Hello, ${name}!`;
  console.log(message);
  core.setOutput('greeting-message', message);
} catch (error) {
  core.setFailed(error.message);
}

// A standalone runnable example to demonstrate core logic
function runSimpleGreeting(inputName) {
  const name = inputName || 'World';
  const message = `Hello from runnable JS, ${name}!`;
  return message;
}

console.log(runSimpleGreeting('CoddyKit'));
console.log(runSimpleGreeting());

De basis van Docker Actions

Voor complexere omgevingen zijn Docker-container-Actions krachtig. Ze bevatten een Dockerfile die de containerimage definieert en alle benodigde afhankelijkheden bundelt.

Je action.yml verwijst naar deze image en vertelt GitHub Actions dat deze moet worden gebouwd en uitgevoerd.

# action.yml for Docker action
name: 'Docker Hello World'
description: 'Greets a name from within a Docker container'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'Docker'
outputs:
  greeting-message:
    description: 'The greeting message from Docker'
runs:
  using: 'docker'
  image: 'Dockerfile'

De omgeving van je Action

Het Dockerfile specificeert de basisimage, installeert afhankelijkheden en definieert het ingangspunt voor je Action. Zo wordt je Action uitgevoerd in een consistente, gecontroleerde omgeving.

# Dockerfile
FROM alpine:3.16

LABEL "com.github.actions.name"="Docker Hello World"
LABEL "com.github.actions.description"="Greets a name from within a Docker container"
LABEL "com.github.actions.icon"="globe"
LABEL "com.github.actions.color"="blue"

# Copy your script into the container
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

Docker Actions scripten

In de Docker-container ontvangt je ingangsscript (bijvoorbeeld entrypoint.sh) invoer als omgevingsvariabelen (met het voorvoegsel INPUT_). Het stelt uitvoer in door deze te schrijven naar het bestand dat is opgegeven door de omgevingsvariabele $GITHUB_OUTPUT.

#!/bin/sh -l

# entrypoint.sh

echo "Hello from Docker, $INPUT_WHO_TO_GREET!"
GREETING="Hello from Docker, $INPUT_WHO_TO_GREET!"
echo "greeting-message=$GREETING" >> "$GITHUB_OUTPUT"

Aanbevolen werkwijzen voor Actions

Houd bij het ontwikkelen van aangepaste Actions rekening met deze tips voor robuuste en onderhoudbare tools:

  • Versiebeheer: Gebruik semantische versieaanduidingen (bijvoorbeeld v1, v2) voor stabiliteit.
  • Testen: Test je Action grondig lokaal en in workflows.
  • Foutafhandeling: Implementeer duidelijke foutmeldingen en zorg dat fouten netjes worden afgehandeld.
  • Beveiliging: Sanitize invoer en voorkom dat gevoelige gegevens openbaar worden.
  • Documentatie: Geef duidelijke gebruiksinstructies in je README.

Controle van het Action-type

Je moet een aangepaste GitHub Action maken waarvoor een specifieke Python-bibliotheek nodig is die niet vooraf is geïnstalleerd op standaard GitHub Actions-runners. Welk type Action is over het algemeen het meest geschikt voor dit scenario?

Samenvatting van aangepaste Actions

We hebben onderzocht hoe je GitHub Actions kunt uitbreiden door je eigen aangepaste Actions te maken. Je hebt geleerd over de twee belangrijkste typen: JavaScript Actions en Docker-container-Actions, en over de cruciale rol van het action.yml-bestand. Ook hebben we behandeld hoe je invoer, uitvoer en de kernlogica voor elk type definieert, evenals aanbevolen werkwijzen voor ontwikkeling.

Aangepaste Actions zijn krachtig voor herbruikbaarheid en standaardisatie in je CI/CD-pijplijnen.

Gratis beginnen

Leer DevOps-bootcamp met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
142
Lessen
568

Veelgestelde vragen

Is de les “Aangepaste GitHub Actions ontwikkelen” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Aangepaste GitHub Actions ontwikkelen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat leer ik in “Aangepaste GitHub Actions ontwikkelen”?

Leer uw eigen herbruikbare aangepaste Actions te maken met JavaScript of Docker om de functionaliteit van GitHub Actions uit te breiden. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Aangepaste GitHub Actions ontwikkelen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Aangepaste GitHub Actions ontwikkelen
  2. Self-hosted runners voor on-premises
  3. Integratie met bedrijfssystemen
  4. Composite actions en publiceren naar de Marketplace
← Terug naar DevOps-bootcamp