aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/test.yml
blob: bf701005f0cf5a316ee72fd86ea541633d1a2422 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: Run Tests
on: [ push, pull_request ]
jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        version: [ 7.0.0-jdk16 , 7.2-jdk17 ]
    runs-on: ubuntu-20.04
    container:
      image: gradle:${{ matrix.version }}
      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:
        version: [7.0.0-jdk16 , 7.2-jdk17]
        test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }}

    runs-on: ubuntu-20.04
    container:
      image: gradle:${{ matrix.version }}
      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) }}

    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/