Aller au contenu

Module 11 – CI/CD GitLab (Voir le cours complet)

1. Pourquoi CI/CD ?

Sans pipeline :

Avec pipeline :

CI/CD = ceinture de sécurité.


Précision sur le vocabulaire


Pipeline minimal Maven

image: maven:3.9-eclipse-temurin-17

stages: [build, test]

build:
  stage: build
  script:
    - mvn -q -DskipTests compile

test:
  stage: test
  script:
    - mvn -q test

Explication :


Ajouter un rapport JUnit (pratique)

test:
  stage: test
  script:
    - mvn test
  artifacts:
    when: always
    reports:
      junit: target/surefire-reports/*.xml

But : voir les tests dans l’UI GitLab.


Ajouter JaCoCo (couverture)

Vous voulez mesurer si vous testez “un peu” ou “sérieusement”.


Build Docker en CI

Version simple (concept) :

docker-build:
  stage: build
  image: docker:24
  services: [docker:dind]
  script:
    - docker build -t wouaf-api .

7. Check de santé après run (Actuator)

Dans un job, on peut :

Exemple (simplifié) :

curl -f http://localhost:8080/actuator/health || exit 1

Le -f fait échouer curl si status >= 400.


Pièges


A faire (optionnel car déjà vu dans le cours DevOps)

  1. Ajoutez un job package (mvn package).
  2. Ajoutez un job *lint (format, checkstyle si vous en avez).