From 13f4b994ab5adac9797db8ae73ea679fe6c22d15 Mon Sep 17 00:00:00 2001 From: "IETM_FIXE\\ietm6" Date: Thu, 18 Jun 2026 16:28:10 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20postgres=20sur=20git=20et=20gitea?= =?UTF-8?q?=20en=20conteneur=20docker=20pour=20pouvoir=20ex=C3=A9cuter=20l?= =?UTF-8?q?es=20tests=20unitaires=20concernant=20la=20BDD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci.yml | 20 ++++++++++++++++++++ .gitea/workflows/release.yml | 18 ++++++++++++++++++ .github/workflows/desktop-release.yml | 20 ++++++++++++++++++++ 3 files changed, 58 insertions(+) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 76bbba3..8dd47bc 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -14,6 +14,22 @@ jobs: core: name: Core (Java · mvn test + JaCoCo) runs-on: ubuntu-latest + # Les tests Core utilisent une VRAIE base PostgreSQL (cf. + # src/test/resources/application.properties, ddl-auto=create-drop). + # On en fournit une en service container. Sur Gitea (job en conteneur), + # le service est joignable par son NOM d'hôte `postgres`. + services: + postgres: + image: postgres:16-alpine + env: + POSTGRES_DB: loremind_test + POSTGRES_USER: loremind_test + POSTGRES_PASSWORD: loremind_test + options: >- + --health-cmd "pg_isready -U loremind_test -d loremind_test" + --health-interval 10s + --health-timeout 5s + --health-retries 10 steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -26,6 +42,10 @@ jobs: # `mvn test` exécute aussi jacoco:report + jacoco:check (plancher 60%). - name: mvn test (via wrapper) working-directory: core + env: + SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/loremind_test + SPRING_DATASOURCE_USERNAME: loremind_test + SPRING_DATASOURCE_PASSWORD: loremind_test run: | chmod +x ./mvnw ./mvnw -B test diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 25740a7..8675fe2 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -17,6 +17,20 @@ jobs: # tests rouges ne publiera donc PAS d'images. tests: runs-on: ubuntu-latest + # Base PostgreSQL réelle pour les tests Core (joignable par le nom `postgres` + # depuis le conteneur du job Gitea). + services: + postgres: + image: postgres:16-alpine + env: + POSTGRES_DB: loremind_test + POSTGRES_USER: loremind_test + POSTGRES_PASSWORD: loremind_test + options: >- + --health-cmd "pg_isready -U loremind_test -d loremind_test" + --health-interval 10s + --health-timeout 5s + --health-retries 10 steps: - name: Checkout uses: actions/checkout@v4 @@ -29,6 +43,10 @@ jobs: cache: maven - name: Core — mvn test (+ JaCoCo check) working-directory: core + env: + SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/loremind_test + SPRING_DATASOURCE_USERNAME: loremind_test + SPRING_DATASOURCE_PASSWORD: loremind_test run: | chmod +x ./mvnw ./mvnw -B test diff --git a/.github/workflows/desktop-release.yml b/.github/workflows/desktop-release.yml index bc4db28..d037708 100644 --- a/.github/workflows/desktop-release.yml +++ b/.github/workflows/desktop-release.yml @@ -42,6 +42,22 @@ jobs: # les memes tests ici. Un test rouge => pas d'installeur publie. tests: runs-on: ubuntu-latest + # Base PostgreSQL réelle pour les tests Core. Sur les runners GitHub (job sur + # la VM, pas en conteneur), le service est joignable via localhost + le port mappé. + services: + postgres: + image: postgres:16-alpine + env: + POSTGRES_DB: loremind_test + POSTGRES_USER: loremind_test + POSTGRES_PASSWORD: loremind_test + ports: + - 5432:5432 + options: >- + --health-cmd "pg_isready -U loremind_test -d loremind_test" + --health-interval 10s + --health-timeout 5s + --health-retries 10 steps: - uses: actions/checkout@v4 with: @@ -55,6 +71,10 @@ jobs: cache: maven - name: Core — mvn test (+ JaCoCo check) working-directory: core + env: + SPRING_DATASOURCE_URL: jdbc:postgresql://localhost:5432/loremind_test + SPRING_DATASOURCE_USERNAME: loremind_test + SPRING_DATASOURCE_PASSWORD: loremind_test run: | chmod +x ./mvnw ./mvnw -B test