improve and enhance test coverage #18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Java SDK - Coverage Check | |
| on: | |
| pull_request: | |
| branches: | |
| - development | |
| - staging | |
| - master | |
| jobs: | |
| coverage: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 8 (Temurin) | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '8' | |
| cache: maven | |
| - name: Enable tests in pom.xml | |
| run: | | |
| echo "π§ Ensuring tests are enabled in pom.xml..." | |
| sed -i 's/<skipTests>true<\/skipTests>/<skipTests>false<\/skipTests>/g' pom.xml || true | |
| - name: Run tests and generate JaCoCo report | |
| run: mvn clean test -Dtest='Test*' jacoco:report -Dgpg.skip=true | |
| - name: π Extract coverage from JaCoCo HTML report | |
| id: extract_coverage | |
| run: | | |
| echo "Extracting coverage summary from JaCoCo HTML report..." | |
| REPORT="target/site/jacoco/index.html" | |
| if [ ! -f "$REPORT" ]; then | |
| echo "β JaCoCo HTML report not found!" | |
| exit 1 | |
| fi | |
| # Extract the <tfoot> Total row and clean it up | |
| TOTAL_ROW=$(grep -A2 "<td>Total</td>" "$REPORT" | tr -d '\n') | |
| # Extract numeric percentages in order (Instruction first, Branch second) | |
| PERCENTAGES=($(echo "$TOTAL_ROW" | grep -oE '[0-9]+%' | sed 's/%//g')) | |
| INSTRUCTION=${PERCENTAGES[0]:-0} | |
| BRANCH=${PERCENTAGES[1]:-0} | |
| echo "π Instruction Coverage: ${INSTRUCTION}%" | |
| echo "πΏ Branch Coverage: ${BRANCH}%" | |
| echo "instruction=${INSTRUCTION}" >> $GITHUB_OUTPUT | |
| echo "branch=${BRANCH}" >> $GITHUB_OUTPUT | |
| - name: π¬ Post coverage summary as PR comment | |
| uses: marocchino/sticky-pull-request-comment@v2 | |
| with: | |
| header: π§ͺ JaCoCo Coverage Report | |
| message: | | |
| **Coverage Summary** | |
| - π Instruction Coverage: `${{ steps.extract_coverage.outputs.instruction }}%` | |
| - πΏ Branch Coverage: `${{ steps.extract_coverage.outputs.branch }}%` | |
| - name: π¦ Upload JaCoCo HTML report as artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jacoco-report | |
| path: target/site/jacoco/ | |
| if-no-files-found: warn |