fabric-loom/.github/workflows/test-push.yml

72 lines
1.9 KiB
YAML

name: Run Tests
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
matrix:
gradle: [4.9, 4.10.2, 6.8.3]
java: [jdk8, jdk11, jdk15]
exclude: # Dont run older gradle versions on newer java
- java: jdk15
gradle: 4.9
- java: jdk15
gradle: 4.10.2
- java: jdk11
gradle: 4.9
- java: jdk11
gradle: 4.10.2
runs-on: ubuntu-20.04
container:
image: gradle:${{ matrix.gradle }}-${{ matrix.java }}
options: --user root
steps:
- uses: actions/checkout@v2
- uses: gradle/wrapper-validation-action@v1
- run: gradle build check -x test --stacktrace
# This job is used to feed the test matrix of next job to allow the tests to run in parallel
prepare_test_matrix:
# Lets wait to ensure it builds before going running tests
needs: build
runs-on: ubuntu-20.04
container:
image: gradle:6.8.3-jdk15
options: --user root
steps:
- uses: actions/checkout@v2
- run: gradle writeActionsTestMatrix --stacktrace
-
id: set-matrix
run: echo "::set-output name=matrix::$(cat build/test_matrix.json)"
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
run_tests:
needs: prepare_test_matrix
strategy:
fail-fast: false
matrix:
java: [jdk8, jdk11, jdk15]
test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }}
runs-on: ubuntu-20.04
container:
image: gradle:6.8.3-${{ matrix.java }}
options: --user root
steps:
- uses: actions/checkout@v2
- run: gradle test --tests *${{ matrix.test }} --stacktrace
env:
TEST_WARNING_MODE: fail
- uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: ${{ matrix.test }} (${{ matrix.java }}) Results
path: build/reports/