Merge pull request #230 from harrel56/dependabot/gradle/org.yaml-snak… #456
This file contains 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: tests | |
on: | |
pull_request: | |
push: | |
branches: [ master ] | |
jobs: | |
generic-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
- name: Setup java | |
uses: actions/setup-java@v4 | |
with: | |
# Not using variables to allow running from forks | |
distribution: temurin | |
java-version: 21 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-version: wrapper | |
- name: Run generic tests | |
run: ./gradlew check -x test --no-daemon | |
- name: Upload test execution data | |
uses: actions/upload-artifact@v4 | |
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@v4 | |
- 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@v4 | |
- name: Setup java | |
uses: actions/setup-java@v4 | |
with: | |
# Not using variables to allow running from forks | |
distribution: temurin | |
java-version: 21 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
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@v4 | |
with: | |
name: ${{ matrix.test-class }}-tests-exec | |
path: build/jacoco | |
report: | |
needs: [generic-tests, provider-tests] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup java | |
uses: actions/setup-java@v4 | |
with: | |
# Not using variables to allow running from forks | |
distribution: temurin | |
java-version: 21 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-version: wrapper | |
- name: Download test execution data | |
uses: actions/download-artifact@v4 | |
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: Upload report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: report-output | |
path: | | |
build/classes | |
build/generated | |
build/jacoco | |
build/reports | |
build/test-results |