|
8 | 8 |
|
9 | 9 | jobs: |
10 | 10 | test: |
| 11 | + # Use matrix.test.name here to avoid it taking up the entire window width |
| 12 | + name: test ${{matrix.test.name}} (${{ matrix.os }}, ${{ matrix.version }}, ${{ matrix.arch }}, ${{ matrix.num_threads }}) |
11 | 13 | runs-on: ${{ matrix.os }} |
12 | 14 | continue-on-error: ${{ matrix.version == 'nightly' }} |
13 | 15 |
|
14 | 16 | strategy: |
15 | 17 | fail-fast: false |
16 | 18 | matrix: |
17 | | - test-args: |
| 19 | + test: |
18 | 20 | # Run some of the slower test files individually. The last one catches everything |
19 | 21 | # not included in the others. |
20 | | - - "essential/ad.jl" |
21 | | - - "mcmc/gibbs.jl" |
22 | | - - "mcmc/hmc.jl" |
23 | | - - "mcmc/abstractmcmc.jl" |
24 | | - - "mcmc/Inference.jl" |
25 | | - - "experimental/gibbs.jl" |
26 | | - - "mcmc/ess.jl" |
27 | | - - "--skip essential/ad.jl mcmc/gibbs.jl mcmc/hmc.jl mcmc/abstractmcmc.jl mcmc/Inference.jl experimental/gibbs.jl mcmc/ess.jl" |
| 22 | + - name: "essential/ad" |
| 23 | + args: "essential/ad.jl" |
| 24 | + - name: "mcmc/gibbs" |
| 25 | + args: "mcmc/gibbs.jl" |
| 26 | + - name: "mcmc/hmc" |
| 27 | + args: "mcmc/hmc.jl" |
| 28 | + - name: "mcmc/abstractmcmc" |
| 29 | + args: "mcmc/abstractmcmc.jl" |
| 30 | + - name: "mcmc/Inference" |
| 31 | + args: "mcmc/Inference.jl" |
| 32 | + - name: "experimental/gibbs" |
| 33 | + args: "experimental/gibbs.jl" |
| 34 | + - name: "mcmc/ess" |
| 35 | + args: "mcmc/ess.jl" |
| 36 | + - name: "everything else" |
| 37 | + args: "--skip essential/ad.jl mcmc/gibbs.jl mcmc/hmc.jl mcmc/abstractmcmc.jl mcmc/Inference.jl experimental/gibbs.jl mcmc/ess.jl" |
28 | 38 | version: |
29 | | - - '1.7' |
30 | 39 | - '1' |
31 | 40 | os: |
32 | 41 | - ubuntu-latest |
|
39 | 48 | - 1 |
40 | 49 | - 2 |
41 | 50 | exclude: |
42 | | - # With Windows and macOS, only run Julia 1.7, x64, 2 threads. We just want to see |
| 51 | + # With Windows and macOS, only run x64, 2 threads. We just want to see |
43 | 52 | # some combination work on OSes other than Ubuntu. |
44 | | - - os: windows-latest |
45 | | - version: '1' |
46 | | - - os: macOS-latest |
47 | | - version: '1' |
48 | 53 | - os: windows-latest |
49 | 54 | arch: x86 |
50 | 55 | - os: macOS-latest |
|
53 | 58 | num_threads: 1 |
54 | 59 | - os: macOS-latest |
55 | 60 | num_threads: 1 |
56 | | - # It's sufficient to test x86 with one version of Julia and one thread. |
57 | | - - version: '1' |
58 | | - arch: x86 |
| 61 | + # It's sufficient to test x86 with one thread. |
59 | 62 | - num_threads: 2 |
60 | 63 | arch: x86 |
61 | 64 |
|
|
66 | 69 | echo "Architecture: ${{ matrix.arch }}" |
67 | 70 | echo "Julia version: ${{ matrix.version }}" |
68 | 71 | echo "Number of threads: ${{ matrix.num_threads }}" |
69 | | - echo "Test arguments: ${{ matrix.test-args }}" |
| 72 | + echo "Test arguments: ${{ matrix.test.args }}" |
70 | 73 | - name: (De)activate coverage analysis |
71 | 74 | run: echo "COVERAGE=${{ matrix.version == '1' && matrix.os == 'ubuntu-latest' && matrix.num_threads == 2 }}" >> "$GITHUB_ENV" |
72 | 75 | shell: bash |
|
81 | 84 | # Custom calls of Pkg.test tend to miss features such as e.g. adjustments for CompatHelper PRs |
82 | 85 | # Ref https://github.com/julia-actions/julia-runtest/pull/73 |
83 | 86 | - name: Call Pkg.test |
84 | | - run: julia --color=yes --inline=yes --depwarn=yes --check-bounds=yes --threads=${{ matrix.num_threads }} --project=@. -e 'import Pkg; Pkg.test(; coverage=parse(Bool, ENV["COVERAGE"]), test_args=ARGS)' -- ${{ matrix.test-args }} |
| 87 | + run: julia --color=yes --inline=yes --depwarn=yes --check-bounds=yes --threads=${{ matrix.num_threads }} --project=@. -e 'import Pkg; Pkg.test(; coverage=parse(Bool, ENV["COVERAGE"]), test_args=ARGS)' -- ${{ matrix.test.args }} |
85 | 88 | - uses: julia-actions/julia-processcoverage@v1 |
86 | 89 | if: ${{ env.COVERAGE }} |
87 | 90 | - uses: codecov/codecov-action@v4 |
|
0 commit comments