|
21 | 21 | - name: Checkout LFS objects |
22 | 22 | run: git lfs checkout |
23 | 23 |
|
24 | | - |
25 | 24 | - name: Cache local Maven repository |
26 | 25 | uses: actions/cache@v4 |
27 | 26 | with: |
@@ -57,15 +56,31 @@ jobs: |
57 | 56 | echo "cx-mac binary does not exist"; exit 1; |
58 | 57 | fi |
59 | 58 |
|
60 | | - - name: Run tests with Maven |
61 | | - run: mvn -B test --file pom.xml |
| 59 | + - name: Install xmllint |
| 60 | + run: sudo apt-get install -y libxml2-utils |
| 61 | + |
| 62 | + - name: Run tests with JaCoCo |
| 63 | + run: mvn test jacoco:report |
62 | 64 | env: |
63 | 65 | CX_CLIENT_ID: ${{ secrets.CX_CLIENT_ID}} |
64 | 66 | CX_CLIENT_SECRET: ${{ secrets.CX_CLIENT_SECRET}} |
65 | 67 | CX_BASE_URI: ${{ secrets.CX_BASE_URI }} |
66 | 68 | CX_TENANT: ${{ secrets.CX_TENANT }} |
67 | 69 | CX_APIKEY: ${{ secrets.CX_APIKEY }} |
68 | 70 |
|
| 71 | + - name: Print total coverage percentage |
| 72 | + run: | |
| 73 | + COVERED_LINES=$(xmllint --xpath "string(//report/counter[@type='LINE']/@covered)" target/site/jacoco/jacoco.xml) |
| 74 | + MISSED_LINES=$(xmllint --xpath "string(//report/counter[@type='LINE']/@missed)" target/site/jacoco/jacoco.xml) |
| 75 | + TOTAL_LINES=$((COVERED_LINES + MISSED_LINES)) |
| 76 | + COVERAGE_PERCENTAGE=$(echo "scale=2; $COVERED_LINES / $TOTAL_LINES * 100" | bc) |
| 77 | + echo "Total coverage percentage: $COVERAGE_PERCENTAGE%" |
| 78 | +
|
| 79 | + - name: Upload JaCoCo coverage report |
| 80 | + uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 #v4 |
| 81 | + with: |
| 82 | + name: jacoco-coverage-report |
| 83 | + path: target/site/jacoco |
69 | 84 |
|
70 | 85 | - name: Build with Maven |
71 | 86 | run: mvn -B verify -DskipTests -Dgpg.skip --file pom.xml |
|
0 commit comments