Skip to content

use coverage badge from sonarcloud #2

use coverage badge from sonarcloud

use coverage badge from sonarcloud #2

Workflow file for this run

name: tests
on:
pull_request:
push:
branches: [ master ]
jobs:
generic-tests:
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v3
- name: Setup java
uses: actions/setup-java@v3
with:
# Not using variables to allow running from forks
distribution: corretto
java-version: 17
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
with:
gradle-version: wrapper
- name: Run generic tests
run: ./gradlew check -x test --no-daemon
- name: Upload test execution data
uses: actions/upload-artifact@v3
with:
name: generic-tests-exec
path: build/jacoco
provider-list:
runs-on: ubuntu-latest
outputs:
test-classes: ${{ steps.test-classes.outputs.test-classes }}
steps:
- name: Git checkout
uses: actions/checkout@v3
- name: List provider test classes
id: test-classes
run: |
CLASSES=$(ls src/test/java/dev/harrel/jsonschema/providers/ | sed 's/\.java$//' | jq -R -s -c 'split("\n")[:-1]')
echo "test-classes=$CLASSES" >> "$GITHUB_OUTPUT"
provider-tests:
needs: provider-list
runs-on: ubuntu-latest
strategy:
matrix:
test-class: ${{ fromJSON(needs.provider-list.outputs.test-classes) }}
steps:
- uses: actions/checkout@v3
- name: Setup java
uses: actions/setup-java@v3
with:
# Not using variables to allow running from forks
distribution: corretto
java-version: 17
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
with:
gradle-version: wrapper
- name: Gradle provider tests
run: ./gradlew test --tests ${{ matrix.test-class }} --no-daemon
- name: Rename test execution data
run: mv build/jacoco/test.exec build/jacoco/${{ matrix.test-class }}.exec
- name: Upload test execution data
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.test-class }}-tests-exec
path: build/jacoco
report:
needs: [generic-tests, provider-tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup java
uses: actions/setup-java@v3
with:
# Not using variables to allow running from forks
distribution: corretto
java-version: 17
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
with:
gradle-version: wrapper
- name: Download test execution data
uses: actions/download-artifact@v3
with:
path: build/jacoco
- name: Get exec data up one level
run: find build/jacoco -path 'build/jacoco/*/*' -execdir mv -t ../ {} +
- name: Gradle jacoco report
run: ./gradlew jacocoTestReport --no-daemon
- name: Generate coverage badge
uses: cicirello/jacoco-badge-generator@v2
with:
jacoco-csv-file: build/reports/jacoco/test/jacocoTestReport.csv
generate-coverage-badge: true
generate-coverage-endpoint: true
- name: Upload report
uses: actions/upload-artifact@v3
with:
name: report-output
path: build/reports