4. CI CD - Roxane90/IT-Landscape GitHub Wiki
4.1 Inleiding tot CI/CD
4.1.1 Wat is CI/CD?
CI/CD is een verzamelterm voor een reeks praktijken en tools die het softwareontwikkelingsproces automatiseren en versnellen. Het is een essentieel onderdeel van DevOps, dat samenwerking tussen ontwikkelaars (development) en systeembeheerders (operations) stimuleert.
CI/CD staat voor:
- Continuous Integration (CI) โ continue integratie
- Continuous Delivery / Deployment (CD) โ continue levering of uitrol
Door deze technieken toe te passen, worden kleine en frequente wijzigingen in de code sneller en betrouwbaarder naar productie gebracht.
Bron: https://www.civo.com/blog/the-role-of-the-ci-cd-pipeline-in-cloud-computing, geraadpleegd op 01/06/2025 .
4.1.2 Waarop is CI/CD een antwoord?
In klassieke softwareprojecten kwamen ontwikkelteams vaak dezelfde problemen tegen:
- Code werkte op de computer van de ontwikkelaar, maar niet op de server.
- Handmatige deploys leidden tot fouten.
- Bugs werden laat ontdekt, soms pas tijdens productie.
- Verschillende developers werkten op verschillende versies van de code.
- Releases waren stressvolle momenten.
CI/CD is ontwikkeld om deze problemen structureel op te lossen.
4.1.3 Hoe werkt CI/CD?
Continuous Integration (CI)
Wanneer een ontwikkelaar nieuwe code pusht naar de centrale codebase (bijvoorbeeld op GitHub):
-
Wordt de code automatisch gevalideerd en getest
-
Wordt de applicatie opnieuw gebouwd (build)
-
Ontwikkelaars krijgen onmiddellijk feedback bij fouten
Deze stap detecteert problemen vroeg, nog vรณรณr de code in productie terechtkomt.
Continuous Delivery / Deployment (CD)
Wanneer de CI-pijplijn succesvol is, wordt de code:
-
Delivery: automatisch voorbereid voor release (bijvoorbeeld als Docker image of artefact)
-
Deployment: automatisch uitgerold naar een staging- of productieomgeving
Dit maakt het mogelijk om tientallen keren per dag te releasen โ zonder manuele tussenkomst.
4.1.4 Waarom is CI/CD belangrijk?
- Geautomatiseerde en veilige deploys
- Snelle feedback bij elke wijziging
- Samenwerken is eenvoudiger en betrouwbaarder
- Problemen worden vroeg opgemerkt
- Releases zijn routine en vaak automatisch
CI/CD zorgt voor betrouwbaardere software en een soepelere workflow. Dit is essentieel voor moderne softwareteams.
4.2 Gebruik van CI/CD
4.2.1 Opzetten een CI/CD pipeline naar deze repository
Stap 1: maak de mappen en bestanden aan
Open een terminal, maak de map aan, ga in die map staan en open Visual Studio Code met mkdir itl-app cd itl-app code .
Maak hierin drie bestanden aan:
- package.json
- server.js
- Dockerfile
Stap 2: zet het project op GitHub
- Log je in op github.com en maak een nieuwe repository aan, bijvoorbeeld 'IT-Landscape'.
- Initialiseer git in de terminal met de volgende code (aangepast aan jouw gebruikersnaam en repositorynaam: git init git remote add origin https://github.com/Roxane90/IT-Landscape.git git add . git commit -m "Eerste commit" git push -u origin master
Stap 3: Voeg GitHub Action toe
GitHub Actions gaat in je repository zoeken naar een specifieke folderstructuur: .your-project/ โโโ .github/ โ โโโ workflows/ โ โโโ docker-publish.yml
De volgende stap is om deze structuur lokaal toe te voegen, in de terminal of bijvoorbeeld in Visual Studio Code. Wanneer je hierna wijzigingen pusht naar GitHub, weet GitHub dat het een workflow moet uitvoeren.
- Maak de map aan met 'mkdir -p .github/workflows'
- Maak in die map een bestand aan en voeg hier de correcte YAML-inhoud aan toe.
Dus, elke keer dat je iets pusht naar de master branch, gaat GitHub automatisch deze actie (docker-publish.yml) uitvoeren
Stap 4: alles committen en pushen
Met de volgende code in de terminal:
git add .github/workflows/docker-publish.yml git commit -m "GitHub Action toegevoegd voor CI/CD" git push
Stap 5: Controleer op GitHub in het tabblad 'Actions' of de action werd uitgevoerd
Tip: pas je repository instellingen aan onder Settings - Actions - General - Workflow permissions en zorg dat Read and write permissions aanstaat.