GitHub Actions-Quickverwijzing – Standaardstructuur en een lijst met de meest nuttige acties
Een korte uitleg over gangbare GitHub Actions en hun structuur.
GitHub Actions is een automatiserings- en CI/CD-platform binnen GitHub, dat wordt gebruikt om code te bouwen, te testen en te implementeren op basis van gebeurtenissen zoals pushes, pull requests of volgens een schema.
Naast standaard GitHub kun je GitHub Actions ook gebruiken in een zelf-gehoste Gitea-server.

Actions omvatten officiële, community- en externe tools, die automatisering ondersteunen van builds en tests tot implementatie, beheer van releases, QA en meldingen.
Dit overzicht behandelt de structuur van GitHub Actions, een korte beschrijving en de meest gebruikte actions in open source- en commerciële workflows. Het maakt deel uit van Developer Tools: De Complete Gids voor Moderne Ontwikkelingsworkflows.
Basisconfiguratiestructuur
GitHub Actions Workflows worden gedefinieerd in YAML-bestanden die zich bevinden in de .github/workflows-map binnen de repository.
name: Workflow Name
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Run tests
run: npm test
- Het on-blok specificeert triggergebeurtenissen.
- Elke job wordt op zijn eigen runner uitgevoerd.
- steps kunnen shell-opdrachten uitvoeren of herbruikbare actions aanroepen.
Kerncomponenten van Workflows
| Component | Beschrijving |
|---|---|
| Workflow | Geautomatiseerd proces (YAML) dat door een gebeurtenis wordt getriggerd. |
| Event | Activiteit die de workflow activeert (push, pull_request, etc.) |
| Job | Reeks steps die op een runner worden uitgevoerd; kan sequentieel of parallel draaien |
| Step | Elke opdracht of action binnen een job |
| Runner | VM of container waar jobs worden uitgevoerd |
| Action | Herbruikbare extensie/add-on die een taak incapsuleert |
Triggergebeurtenissen
- push
- pull_request
- schedule (gebruikmakend van cron-syntax)
- workflow_dispatch (handmatige trigger, stelt inparameters in)
- release, issue, etc.
Voorbeeld:
on:
push:
branches: [ main ]
workflow_dispatch:
inputs:
environment:
description: 'Deployment Environment'
required: true
default: 'production'
type: string
Nuttige Ingebouwde Actions
| Action | Doel | Veelvoorkomende Parameters |
|---|---|---|
| actions/checkout | Repositorycode uitchecken | ref, token, submodules, persist-credentials |
| actions/setup-node | Node.js-omgeving instellen | node-version, cache, architecture, check-latest |
| actions/setup-python | Python instellen | python-version, architecture |
| actions/cache | Afhankelijkheden in cache zetten | path, key, restore-keys |
| docker/build-push-action | Docker-images bouwen & pushen | context, file, platforms, tags, push, build-args |
| actions/upload-artifact | Build-artefacten uploaden | name, path, if-no-files-found |
| actions/download-artifact | Artefacten downloaden | name, path |
| github/email-actions | E-mailmeldingen verzenden | to, subject, content, attachments |
| peter-evans/create-pull-request | PR’s maken via workflow | branch, title, body, labels, base |
| actions/github-script | Arbitrair JavaScript in je workflow uitvoeren | script, github-token |
Action Parameters
Algemene Parameters voor Elke Action-oproep:
- name: Some Action or Step
uses: owner/repo@ref
with:
param1: value
param2: value
env:
ENV_VAR: value
if: ${{ condition }}
run: command_to_run
shell: bash|pwsh|python|sh
continue-on-error: true|false
- with: argumenten die aan de action worden doorgegeven (zie de action-documentatie voor alle opties)
- env: omgevingsvariabelen voor de step
- if: conditionele uitvoering
- run: shell-opdrachten (als je geen action gebruikt)
- shell: shell die wordt gebruikt om de step uit te voeren
- continue-on-error: doorgaan ook als de step faalt
Aangepaste Action-inputs definiëren
In je action-metadata (action.yml):
inputs:
example-input:
description: 'An example input'
required: false
default: 'default-value'
Wanneer gebruikt in een workflow:
- uses: my/action@v1
with:
example-input: 'custom-value'
Wordt opgehaald als omgevingsvariabele INPUT_EXAMPLE_INPUT wanneer de action wordt uitgevoerd.
Voorbeeld: Workflow met Handmatige Parameters
name: Deploy
on:
workflow_dispatch:
inputs:
environment:
description: 'Deployment Environment'
required: true
default: 'production'
type: string
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Deploy to environment
run: echo "Deploying to ${{ github.event.inputs.environment }}"
Action Marketplace
- Duizenden herbruikbare actions zijn beschikbaar in de GitHub Marketplace.
- Categorieën omvatten: cloud-implementaties, meldingstools, testframeworks, code-analyse en meer.
- Verken: actions/checkout, actions/setup-node, docker/build-push-action, actions/cache, actions/upload-artifact en vele anderen.
Snelle Tips
- Plaats workflow-bestanden in
.github/workflows. - Gebruik workflow_dispatch met inputs voor handmatige en geparametriseerde runs.
- Gebruik de cache-action om het installeren van afhankelijkheden te versnellen.
- Gebruik job matrix om meerdere besturingssysteem- en runtimeversies te testen.
- Gebruik secrets voor gevoelige gegevens, verwezen als
${{ secrets.SECRET_NAME }}.
Deze cheat-sheet behandelt de basics van het gebruik, configureren en uitbreiden van GitHub Actions voor automatisering, CI/CD en meer. Voor meer details en updates, raadpleeg altijd de officiële GitHub-documentatie en action-repositories.
Veelgebruikte GitHub Actions
Hier is een praktische lijst met veelgebruikte GitHub Actions die helpen bij het automatiseren van CI/CD, testen, bouwen, implementeren en workflow-taken:
Kern Officiële Actions
| Action | Doel | Belangrijke Voorbeeldparameters |
|---|---|---|
| actions/checkout | Repositorycode uitchecken | ref, submodules |
| actions/setup-node | Node.js-omgeving instellen | node-version, cache |
| actions/setup-python | Python-omgeving instellen | python-version |
| actions/setup-java | Java JDK instellen | distribution, java-version |
| actions/cache | Cache voor afhankelijkheden en build-outputs | path, key, restore-keys |
| actions/upload-artifact | Build-artefacten uploaden | name, path |
| actions/download-artifact | Artefacten uit de workflow downloaden | name, path |
| actions/github-script | JavaScript uitvoeren met GitHub-context en API | script |
| actions/create-release | Een GitHub-release maken | tag_name, release_name |
| actions/upload-release-asset | Assets uploaden naar een release | upload_url, asset_path |
| actions/labeler | Labels automatisch toewijzen aan issues/PRs | repo-token, configuration-path |
Populaire Community- en Derden-Actions
| Action | Doel |
|---|---|
| docker/build-push-action | Docker-images bouwen en pushen |
| actions/setup-go | Go-omgeving instellen |
| super-linter/super-linter | Universeel geautomatiseerd code-linting |
| trufflesecurity/trufflehog | Scannen naar secrets en credentials |
| peaceiris/actions-gh-pages | Statische sites implementeren op GitHub Pages |
| JamesIves/github-pages-deploy-action | Projecten implementeren op GitHub Pages |
| peter-evans/create-pull-request | Pull requests automatisch maken |
| softprops/action-gh-release | GitHub Releases maken en uploaden |
| ad-m/github-push-action | Wijzigingen terugpushen naar de GitHub-repository |
| actions/setup-dotnet | .NET SDK instellen |
| azure/login | Authenticeren bij Azure |
| google-github-actions/auth | Authenticeren bij Google Cloud |
Test-, QA- en Rapportage-Actions
| Action | Doel |
|---|---|
| actions/setup-ruby | Ruby-omgeving instellen |
| codecov/codecov-action | Code-dekkingsrapporten uploaden naar Codecov |
| coverallsapp/github-action | Dekkingsresultaten uploaden naar Coveralls |
| dorny/test-reporter | Testresultaten attachen aan GitHub Checks |
| stefanzweifel/git-auto-commit-action | Wijzigingen in bestanden automatisch commiten en pushen |
Implementatie- en Melding-Actions
| Action | Doel |
|---|---|
| appleboy/scp-action | Bestanden uploaden via SCP |
| SamKirkland/FTP-Deploy-Action | Bestanden implementeren via FTP/FTPS |
| cypress-io/github-action | Cypress end-to-end tests uitvoeren |
| slackapi/slack-github-action | Berichten naar Slack sturen |
| dawidd6/action-send-mail | E-mails verzenden tijdens workflow-runs |
Hulpmiddelen & Workflow-beheer
| Action | Doel |
|---|---|
| peter-evans/repository-dispatch | Triggert workflows in externe repositories |
| fregante/setup-git-user | Git-gebruikersgegevens instellen voor commits |
| andymckay/labeler | Labels toewijzen aan issues en PRs op basis van paden |
| actions/configure-pages | Publicatie naar GitHub Pages configureren |
| EndBug/add-and-commit | Bestanden toevoegen en commiten binnen een workflow |
| dangoslen/changelog-enforcer | Controleert of een changelog is bijgewerkt voor PRs |
Hoe vind je meer?
Er zijn veel GitHub Actions die workflow-automatisering mogelijk maken, zoals geautomatiseerd testen, implementatie naar productie, meldingen en integraties met andere diensten. De GitHub Marketplace lijst duizenden actions op over categorieën zoals testen, beveiliging, implementatie, meldingen, codekwaliteit en integraties. Gecureerde lijsten zoals “Awesome Actions” zijn ook geweldig voor inspiratie en ontdekking.
Nuttige links
- https://docs.github.com/actions
- https://github.com/marketplace
- https://docs.github.com/en/actions/get-started/quickstart
- https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
- GIT Cheat-sheet
- Gitea - installeren en testen
- Gitea-server back-uppen en herstellen
- Hugo-website implementeren naar AWS S3 met Gitea Actions
- Gitflow: Stappen, Alternatieven, Voordelen en Nadelen
- DevOps met GitOps - Argo CD, Flux, Jenkins X, Weave GitOps en anderen