Skip to content

chore: update file coverage.yml #14

chore: update file coverage.yml

chore: update file coverage.yml #14

Workflow file for this run

name: Generate JaCoCo Coverage Badge
on: [push]
jobs:
generate-badge:
runs-on: ubuntu-latest
name: Generate JaCoCo Test Coverage Badge
steps:
# Checkout the code
- name: Checkout code
uses: actions/checkout@v3
# Set up JDK 17
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
# Run tests and generate JaCoCo report
- name: Run tests and generate JaCoCo report
run: |
./mvnw clean verify -Dmaven.test.failure.ignore=true
# Extract coverage value from JaCoCo XML report
- name: Extract coverage percentage
id: coverage
run: |
COVERAGE=$(grep -oPm1 "(?<=<counter type=\"LINE\" covered=\")[^\"]+" target/site/jacoco/jacoco.xml)
TOTAL=$(grep -oPm1 "(?<=<counter type=\"LINE\" missed=\")[^\"]+" target/site/jacoco/jacoco.xml)
PERCENTAGE=$(awk "BEGIN { pc=100*${COVERAGE}/(${COVERAGE}+${TOTAL}); i=int(pc); print (pc-i<0.5)?i:i+1 }")
echo "##[set-output name=coverage;]${PERCENTAGE}"
# Generate the badge SVG
- name: Generate coverage badge
uses: emibcn/badge-action@v1
with:
label: 'Coverage'
status: ${{ steps.coverage.outputs.coverage }}%
color: ${{ steps.coverage.outputs.coverage > 90 && 'green' || steps.coverage.outputs.coverage > 75 && 'yellow,green' || steps.coverage.outputs.coverage > 50 && 'orange' || 'red' }}
path: badges/jacoco-coverage.svg
# Push the badge to the `badges` branch
- name: Checkout badges branch
uses: actions/checkout@v2
with:
ref: badges
path: badges
- name: Create badges directory if necessary
run: mkdir -p badges/
- name: Move badge to badges directory
run: mv badges/jacoco-coverage.svg badges/jacoco-coverage.svg
- name: Commit badge
run: |
cd badges
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add jacoco-coverage.svg
git commit -m "Update JaCoCo coverage badge"
- name: Push badge to badges branch
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: badges