Kennisbank › Developer › CI/CD-pijplijn opzetten met GitHub Actions
developer gevorderd 26 August 2026

CI/CD-pijplijn opzetten met GitHub Actions

CI/CD-pipeline opzetten met GitHub Actions Dit artikel legt uit hoe u een CI/CD-pipeline opzet met GitHub Actions, bedoeld voor ontwikkelaars die hun build-,

CI/CD-pipeline opzetten met GitHub Actions

Dit artikel legt uit hoe u een CI/CD-pipeline opzet met GitHub Actions, bedoeld voor ontwikkelaars die hun build-, test- en deployproces willen automatiseren.

Vereisten

- Een GitHub-account met een repository waarin uw code staat - Git 2.40.0 of nieuwer geïnstalleerd op uw lokale machine - Toegang tot de repository-instellingen (minimaal `write`-rechten) - Een project met een ondersteunde programmeertaal (Node.js 20.x, Python 3.11, Java 17, of vergelijkbaar) - Optioneel: een deployment-target zoals een VPS, cloudplatform, of containerregister

Stappen

1. Maak de workflowdirectory aan

GitHub Actions leest workflowbestanden uit de `.github/workflows`-directory in de root van uw repository. Maak deze directory aan:

mkdir -p .github/workflows

2. Maak het workflowbestand aan

Maak een nieuw bestand aan met de naam `ci.yml` in de `.github/workflows`-directory. Dit bestand definieert de volledige pipeline in YAML-formaat.

touch .github/workflows/ci.yml

3. Definieer de workflowtrigger

Open `.github/workflows/ci.yml` in uw editor. Begin met de naam van de workflow en de triggers. De `push`-trigger start de pipeline bij elke commit naar `main`, de `pull_request`-trigger bij elke pull request naar `main`:

name: CI/CD Pipeline</p><p>on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

4. Configureer de build-job

Voeg een job toe die het project bouwt. Deze job draait op een Ubuntu-runner met Node.js 20. De `actions/checkout@v4`-action haalt de code op, en `actions/setup-node@v4` installeert de juiste Node.js-versie:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm run build

5. Voeg een testjob toe

Voeg een tweede job toe die tests draait. Deze job is afhankelijk van de build-job via `needs`, zodat tests alleen draaien als de build slaagt. Gebruik `actions/upload-artifact@v4` om buildresultaten te bewaren:

test:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm test
      - uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: test-results/

6. Voeg een deployment-job toe

Voeg een deployment-job toe die alleen draait bij pushes naar `main`, niet bij pull requests. Gebruik `if` om dit te controleren. Deze job gebruikt secrets voor credentials — bewaar die in de repository-instellingen onder Settings → Secrets and variables → Actions:

deploy:
    needs: test
    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run build
      - name: Deploy to production
        run: |
          rsync -avz --delete dist/ user@yourserver.com:/var/www/html/
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}

7. Commit en push

Commit de workflowbestanden en push ze naar GitHub. De pipeline start automatisch:

git add .github/workflows/ci.yml
git commit -m "Add CI/CD pipeline with GitHub Actions"
git push origin main

8. Controleer de workflowuitvoering

Ga naar uw repository op GitHub. Klik op de tab Actions in de bovenste navigatiebalk. U ziet de workflow die zojuist gestart is. Klik erop om de uitvoering van elke stap te volgen. Foutmeldingen verschijnen direct in de loguitvoer.

Verificatie

Controleer of de pipeline correct draait door de status van de laatste run te bekijken:

gh run list --limit 5

Dit commando toont de laatste vijf workflowruns met hun status (`completed`, `success`, `failure`). U hebt hiervoor de GitHub CLI (versie 2.40.0 of nieuwer) nodig, geïnstalleerd en geauthenticeerd met `gh auth login`.

Veelgestelde problemen

1. Workflow start niet

Controleer of het bestand `ci.yml` exact in `.github/workflows/` staat, niet in een subdirectory. Controleer ook of de YAML-syntax correct is — een verkeerde indentatie van één spatie zorgt ervoor dat GitHub het bestand negeert. Valideer de syntax met `npx yaml-lint .github/workflows/ci.yml`.

2. `npm ci` faalt met "package-lock.json not found"

`npm ci` vereist een `package-lock.json`-bestand. Genereer dit lokaal met `npm install` en commit het bestand, of vervang `npm ci` door `npm install` in de workflow.

3. Deployment faalt met "Permission denied (publickey)"

De SSH-sleutel die u in het secret `SSH_PRIVATE_KEY` hebt geplaatst, moet overeenkomen met een publieke sleutel in de `authorized_keys` van de doelgebruiker op de server. Test de verbinding eerst handmatig vanaf uw lokale machine met `ssh -i /pad/naar/sleutel user@yourserver.com` voordat u de pipeline opnieuw draait.

Deze opzet geeft u een werkende CI/CD-pipeline met gescheiden build-, test- en deployfasen. U kunt de jobs uitbreiden met extra stappen zoals containerbuilds, security-scans of notificaties — maar de basisstructuur blijft hetzelfde. De vraag is niet of uw pipeline faalt, maar wanneer — en hoe snel u de logs weet te vinden die vertellen waarom.

← Terug naar kennisbank
← Terug naar kennisbank