@@ -18,14 +18,14 @@ concurrency:
1818
1919jobs :
2020 unit :
21- name : Unit ( ${{ matrix.group }})-Julia -${{ matrix.julia-version }}-${{ matrix.os }}
21+ name : unit- ${{ matrix.group }}-${{ matrix.julia-version }}-${{ matrix.os }}
2222 runs-on : ${{ matrix.os }}
2323 timeout-minutes : 60
2424 if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository
2525 strategy :
2626 fail-fast : false
2727 matrix :
28- os : [ubuntu-latest]
28+ os : [ubuntu-latest, macOS-latest, windows-latest ]
2929 julia-version : ["1.10", "1"]
3030 group :
3131 - basic
@@ -39,27 +39,12 @@ jobs:
3939 - parallel
4040 - precompile
4141 - misc
42- include :
43- # macOS tests - only on Julia 1 (latest)
44- - os : macOS-latest
45- julia-version : " 1"
46- group : basic
47- - os : macOS-latest
48- julia-version : " 1"
49- group : expressions
42+ exclude :
43+ # Only run Julia 1.10 on ubuntu
5044 - os : macOS-latest
51- julia-version : " 1"
52- group : evaluation
53- # Windows tests - only on Julia 1 (latest)
45+ julia-version : " 1.10"
5446 - os : windows-latest
55- julia-version : " 1"
56- group : basic
57- - os : windows-latest
58- julia-version : " 1"
59- group : expressions
60- - os : windows-latest
61- julia-version : " 1"
62- group : evaluation
47+ julia-version : " 1.10"
6348
6449 steps :
6550 - uses : actions/checkout@v5
@@ -74,29 +59,22 @@ jobs:
7459 - name : " Build package"
7560 uses : julia-actions/julia-buildpkg@v1
7661 - name : " Run unit tests (${{ matrix.group }})"
77- env :
78- TEST_GROUP : unit/${{ matrix.group }}
7962 run : |
63+ TEST_GROUP="unit/${{ matrix.group }}"
64+ export TEST_GROUP="${TEST_GROUP//-//}"
8065 julia --color=yes -e 'import Pkg; Pkg.add("Coverage")'
8166 julia --color=yes --project=. --threads=auto --check-bounds=yes --depwarn=yes --code-coverage=user -e 'import Coverage; import Pkg; Pkg.test(coverage=true)'
8267 julia --color=yes coverage.jl
8368 shell : bash
84- - name : " Sanitize artifact group"
85- id : sanitize_unit_group
86- shell : bash
87- run : |
88- group='${{ matrix.group }}'
89- safe_group="${group//\//-}"
90- echo "group=$safe_group" >> "$GITHUB_OUTPUT"
9169 - name : " Upload coverage artifacts"
9270 uses : actions/upload-artifact@v4
9371 with :
94- name : coverage-unit-${{ steps.sanitize_unit_group.outputs .group }}-${{ matrix.julia-version }}-${{ matrix.os }}
72+ name : coverage-unit-${{ matrix .group }}-${{ matrix.julia-version }}-${{ matrix.os }}
9573 path : lcov.info
9674 retention-days : 1
9775
9876 integration :
99- name : Integration ( ${{ matrix.group }})-Julia- ${{ matrix.julia-version }}
77+ name : integration- ${{ matrix.group }}- ${{ matrix.julia-version }}-ubuntu-latest
10078 runs-on : ubuntu-latest
10179 timeout-minutes : 60
10280 if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository
@@ -105,58 +83,51 @@ jobs:
10583 matrix :
10684 julia-version : ["1.10", "1"]
10785 group :
108- - ad/ forwarddiff
109- - ad/ zygote
110- - ad/ enzyme
111- - ad/ mooncake
86+ - ad- forwarddiff
87+ - ad- zygote
88+ - ad- enzyme
89+ - ad- mooncake
11290 - aqua
11391 - jet
114- - ext/ mlj/ core
115- - ext/ mlj/ mti
116- - ext/ mlj/ templates
117- - ext/ symbolicutils
118- - ext/ json3_recorder
119- - ext/ dynamicquantities_units
120- - ext/ loopvectorization
92+ - ext- mlj- core
93+ - ext- mlj- mti
94+ - ext- mlj- templates
95+ - ext- symbolicutils
96+ - ext- json3_recorder
97+ - ext- dynamicquantities_units
98+ - ext- loopvectorization
12199 exclude :
122100 - julia-version : " 1"
123- group : ad/ mooncake
101+ group : ad- mooncake
124102 steps :
125103 - uses : actions/checkout@v5
126104 - name : " Set up Julia"
127105 uses : julia-actions/setup-julia@v2
128106 with :
129107 version : ${{ matrix.julia-version }}
130- - name : " Sanitize group"
131- id : sanitize_integration_group
108+ - name : " Convert group name for paths "
109+ id : convert_group
132110 shell : bash
133111 run : |
134112 group='${{ matrix.group }}'
135- safe_group ="${group//\//- }"
136- echo "group=$safe_group " >> "$GITHUB_OUTPUT"
113+ slashed_group ="${group//-// }"
114+ echo "slashed_group=$slashed_group " >> "$GITHUB_OUTPUT"
137115 - name : " Cache dependencies"
138116 uses : julia-actions/cache@v2
139117 with :
140- cache-name : julia-cache;workflow=${{ github.workflow }};job=${{ github.job }};group=integration-${{ steps.sanitize_integration_group.outputs. group }};julia=${{ matrix.julia-version }};project=${{ hashFiles(format('test/integration/{0}/Project.toml', matrix.group )) }}
118+ cache-name : julia-cache;workflow=${{ github.workflow }};job=${{ github.job }};group=integration-${{ matrix. group }};julia=${{ matrix.julia-version }};project=${{ hashFiles(format('test/integration/{0}/Project.toml', steps.convert_group.outputs.slashed_group )) }}
141119 - name : " Run integration test"
142- env :
143- TEST_GROUP : integration/${{ matrix.group }}
144120 run : |
121+ TEST_GROUP="integration/${{ matrix.group }}"
122+ export TEST_GROUP="${TEST_GROUP//-//}"
145123 julia --color=yes -e 'import Pkg; Pkg.add("Coverage")'
146124 julia --color=yes --project=. --threads=auto --check-bounds=yes --code-coverage=user -e 'import Coverage; import Pkg; Pkg.test(coverage=true)'
147125 julia --color=yes coverage.jl
148126 shell : bash
149- - name : " Sanitize artifact group"
150- id : sanitize_integration_artifact_group
151- shell : bash
152- run : |
153- group='${{ matrix.group }}'
154- safe_group="${group//\//-}"
155- echo "group=$safe_group" >> "$GITHUB_OUTPUT"
156127 - name : " Upload coverage artifacts"
157128 uses : actions/upload-artifact@v4
158129 with :
159- name : coverage-integration-${{ steps.sanitize_integration_artifact_group.outputs .group }}-${{ matrix.julia-version }}
130+ name : coverage-integration-${{ matrix .group }}-${{ matrix.julia-version }}
160131 path : lcov.info
161132 retention-days : 1
162133
0 commit comments