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

171 lines
4.4 KiB
YAML

name: Run Tests
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
matrix:
gradle: [7.0.1]
java: [jdk16]
jvm: [hotspot]
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:7.0.1-jdk16
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: [jdk16]
test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }}
exclude:
- java: jdk16
test: net.fabricmc.loom.test.integration.KotlinTest
runs-on: ubuntu-20.04
container:
image: gradle:7.0.0-${{ 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: ${{ failure() }}
with:
name: ${{ matrix.test }} (${{ matrix.java }}) Results
path: build/reports/
run_tests_windows:
needs: prepare_test_matrix
strategy:
fail-fast: false
matrix:
java: [16]
test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }}
exclude:
- java: 16
test: net.fabricmc.loom.test.integration.KotlinTest
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- name: setup jdk ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- run: ./gradlew test --tests ${{ matrix.test }} --stacktrace
env:
TEST_WARNING_MODE: fail
- uses: actions/upload-artifact@v2
if: ${{ failure() }}
with:
name: ${{ matrix.test }} (${{ matrix.java }}) Results
path: build/reports/
# Special case this test to run across all os's
reproducible_build_test:
needs: build
strategy:
fail-fast: false
matrix:
java: [ 16 ]
os: [ windows-2019, ubuntu-20.04, macos-10.15 ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- run: ./gradlew test --tests *ReproducibleBuildTest --stacktrace
- uses: actions/upload-artifact@v2
if: ${{ failure() }}
with:
name: Reproducible Build ${{ matrix.os }} (${{ matrix.java }}) Results
path: build/reports/
bootstrap_tests:
needs: build
strategy:
fail-fast: false
matrix:
java: [ 8, 11, 15, 16 ]
gradle: [ 4.9, 5.2, 6.0.1, 6.9, 7.0.2 ]
exclude:
- java: 16
gradle: 6.9
- java: 16
gradle: 6.0.1
- java: 16
gradle: 5.2
- java: 16
gradle: 4.9
- java: 15
gradle: 6.0.1
- java: 15
gradle: 5.2
- java: 15
gradle: 4.9
runs-on: ubuntu-20.04
container:
image: gradle:7.0.2-jdk16
options: --user root
steps:
# Build loom and publish to maven local
- uses: actions/checkout@v2
- run: gradle build publishToMavenLocal -x test -x check
- run: gradle wrapper --gradle-version=${{ matrix.gradle }}
working-directory: bootstrap/test-project
- run: gradle --stop
- uses: actions/setup-java@v2
with:
java-version: ${{ matrix.java }}
distribution: 'adopt'
- run: ./gradlew --version
working-directory: bootstrap/test-project
- run: ./gradlew build || true
working-directory: bootstrap/test-project
# TODO check the output of the previous step here