diff --git a/.github/workflows/quality.yaml b/.github/workflows/quality.yaml
new file mode 100644
index 0000000..720575c
--- /dev/null
+++ b/.github/workflows/quality.yaml
@@ -0,0 +1,39 @@
+name: Test and Sonar Analysis
+on:
+ pull_request:
+ types: [opened, synchronize, reopened]
+ push:
+ branches:
+ - main
+jobs:
+ test-build:
+ name: build & test & analyze
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
+ - name: Cache SonarCloud packages
+ uses: actions/cache@v4
+ with:
+ path: ~/.sonar/cache
+ key: ${{ runner.os }}-sonar
+ restore-keys: ${{ runner.os }}-sonar
+ - name: Cache Maven packages
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4
+ with:
+ java-version: '21'
+ distribution: 'temurin'
+ - name: Run unit tests
+ run: mvn -B clean test
+ - name: Run Sonar
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+ run: mvn -X -B clean verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Pcoverage
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 6860274..04e3b8b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,6 +25,10 @@
5.0.0-M3
2.3.0
0.8.12
+
+ inseefr
+ https://sonarcloud.io
+ InseeFr_Magma