Lab 1 Report
Link: https://gitlab.stud.atlantis.ugent.be/JPoelaert/devops-project-jasper/-/jobs/249121
Rapport: De pipeline bestaat uit drie stages — build, package en execute, Als eerst wordt de applicatie gebouwd met ./mvnw, en de buildbestanden worden als een artifact opgeslagen. Daarna wordt de image gegenereerd en dan wordt het spel gerund met de logic-service
-
De run-game job vond eerst geen artifacts. Dat heb ik opgelost door artifacts aan maven-build toe te voegen en de juiste needs-relaties te zetten.
-
GitLab gaf een foutmelding over dependencies, wat ik oploste door enkel needs te gebruiken met artifacts: true.
-
De eerste builds waren traag omdat Maven alles opnieuw downloadde, dus ik heb caching van .m2/repository toegevoegd.
Vragen:
- What is ./mvnw and why use it instead of mvn?
A: './mvnw' is een Maven wrapper. Het zorgt automatsih voor de correcte versie van maven voor het project, Hierdoor hoeft de gebruiker niet zelf Maven te instaleren.
- Explain the key differences between GitLab's cache and artifacts mechanisms. For each of Maven dependencies and build files, explain which mechanism you chose and why. What are the trade-offs of your choices?
A: De cache: staat open voor alle pipelines en kan dus hergebruikt worden voor de repo in .m2/repository Artefacts staan dan open per pipeline, om de build door te geven van job tot job. Keuze: Cache → Maven dependencies (.m2/repository) → sneller. Artifacts → build files (target/**) → zorgt voor correcte build. Trade-off: cache = faster but can become stale; artifacts = reliable but temporary and stored server-side.
- Why JDK for build and JRE for runtime?
A: JDK bevat de compiler en JRE is nodig voor het uitvoeren. JDK voor beide is te groot en omslachtig JRE enkel faalt want je hebt geen compiler
DUS 25-jdk voor build, 25-jre voor runtime.