|
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