Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
eadl:bloc3:dev_av:tests [2025/09/17 00:10] – [SpringBoot-GitHub] jcheron | eadl:bloc3:dev_av:tests [2025/09/17 00:41] (Version actuelle) – [SpringBoot-GitHub] jcheron | ||
---|---|---|---|
Ligne 18: | Ligne 18: | ||
<sxh bash; | <sxh bash; | ||
mvn -B -U -ntp test | mvn -B -U -ntp test | ||
+ | </ | ||
+ | |||
+ | === CI GitHub actions === | ||
+ | |||
+ | A mettre dans '' | ||
+ | Vérifiez : | ||
+ | * La version de java (17 ?) | ||
+ | * Le nom de la branche principale (master/ | ||
+ | |||
+ | <sxh yml; | ||
+ | name: CI • Tests (Maven) | ||
+ | |||
+ | on: | ||
+ | push: | ||
+ | branches: [ master ] | ||
+ | pull_request: | ||
+ | branches: [ master ] | ||
+ | |||
+ | concurrency: | ||
+ | group: ci-tests-${{ github.ref }} | ||
+ | cancel-in-progress: | ||
+ | |||
+ | jobs: | ||
+ | test: | ||
+ | runs-on: ubuntu-latest | ||
+ | strategy: | ||
+ | matrix: | ||
+ | java: [ ' | ||
+ | env: | ||
+ | MAVEN_OPTS: -XX: | ||
+ | MAVEN_ARGS: "" | ||
+ | |||
+ | steps: | ||
+ | - name: Checkout | ||
+ | uses: actions/ | ||
+ | |||
+ | - name: Set up Temurin JDK | ||
+ | uses: actions/ | ||
+ | with: | ||
+ | distribution: | ||
+ | java-version: | ||
+ | cache: maven | ||
+ | |||
+ | - name: Build & test | ||
+ | run: mvn -B -U -ntp $MAVEN_ARGS verify | ||
+ | |||
+ | - name: Upload test and coverage reports | ||
+ | if: always() | ||
+ | uses: actions/ | ||
+ | with: | ||
+ | name: test-reports-java-${{ matrix.java }} | ||
+ | path: | | ||
+ | **/ | ||
+ | **/ | ||
+ | **/ | ||
+ | retention-days: | ||
+ | |||
+ | </ | ||
+ | |||
+ | Le workflow : | ||
+ | * Se déclenche sur push et pull_request vers master. | ||
+ | * Installe JDK 17, restaure le cache Maven, compile et lance les tests (verify). | ||
+ | * Archive les rapports (téléchargeables depuis l’onglet “Actions” de Github). | ||
+ | |||
+ | === Couverture JaCoCo === | ||
+ | Ajoute la configuration JaCoCo+Surefire dans **pom.xml** : | ||
+ | |||
+ | Ajouter les numéros de version : | ||
+ | |||
+ | <sxh xml; | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | Ajouter les 2 plugins Maven suivants : | ||
+ | |||
+ | <sxh xml; | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Le rapport de couverture (téléchargeable via actions) : | ||
+ | |||
+ | < | ||
+ | {{: | ||
+ | < | ||
+ | |||
+ | === Seuil de couverture === | ||
+ | Ajout d'une exécution jacoco: | ||
+ | |||
+ | <sxh xml; | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Bonnes pratiques CI === | ||
+ | * Protéger la branche master : | ||
+ | * Settings → Branches → Add rule → exiger le job “CI • Tests (Maven)” avant merge. | ||
+ | * Déclencheurs: | ||
+ | * Pour limiter le bruit: exécuter seulement sur PR ou sur changements Java/Maven: | ||
+ | |||
+ | <sxh yml; | ||
+ | on: | ||
+ | pull_request: | ||
+ | branches: [ master ] | ||
+ | paths: [ ' | ||
</ | </ | ||