3232 outputs :
3333 ocaml_version : ${{ steps.ocaml.outputs.version }}
3434 node : ${{ steps.node.outputs.version }}
35- matrix : ${{ steps.matrix.outputs.value }}
35+ rust_version : ${{ steps.rust.outputs.version }}
36+ os : ${{ steps.os.outputs.version }}
3637 default_rust_version : ${{ steps.defaults.outputs.rust_version }}
3738 default_os : ${{ steps.defaults.outputs.os }}
3839 steps :
@@ -43,32 +44,21 @@ jobs:
4344 run : echo 'version=["4.14.2"]' >> "$GITHUB_OUTPUT"
4445 - id : node
4546 run : echo 'version=["20"]' >> "$GITHUB_OUTPUT"
47+ - id : rust
48+ run : echo 'version=["1.81", "1.82", "1.84"]' >> "$GITHUB_OUTPUT"
49+ - id : os
50+ run : echo 'version=["ubuntu-latest", "ubuntu-24.04-arm", "macos-latest"]' >> "$GITHUB_OUTPUT"
4651 - id : defaults
4752 run : |
4853 echo 'rust_version=1.81' >> "$GITHUB_OUTPUT"
4954 echo 'os=ubuntu-latest' >> "$GITHUB_OUTPUT"
50- - id : matrix
51- run : |
52- # NOTE: This custom matrix configuration is needed to use Rust 1.84 specifically for macOS.
53- # When https://github.com/o1-labs/proof-systems/issues/3254 is fixed,
54- # this can be simplified to use a standard matrix configuration.
55- cat > matrix.json << 'EOF'
56- {
57- "include": [
58- {"rust_toolchain_version": "1.81", "os": "ubuntu-latest"},
59- {"rust_toolchain_version": "1.82", "os": "ubuntu-latest"},
60- {"rust_toolchain_version": "1.81", "os": "ubuntu-24.04-arm"},
61- {"rust_toolchain_version": "1.82", "os": "ubuntu-24.04-arm"},
62- {"rust_toolchain_version": "1.84", "os": "macos-latest"}
63- ]
64- }
65- EOF
66- echo "value=$(cat matrix.json | jq -c .)" >> "$GITHUB_OUTPUT"
6755
6856 refresh-cache :
6957 needs : ['define-matrix']
7058 strategy :
71- matrix : ${{ fromJSON(needs.define-matrix.outputs.matrix) }}
59+ matrix :
60+ rust_toolchain_version : ${{ fromJSON(needs.define-matrix.outputs.rust_version) }}
61+ os : ${{ fromJSON(needs.define-matrix.outputs.os) }}
7262 runs-on : ${{ matrix.os }}
7363 steps :
7464 # if 'workflow_run'
7868 - uses : ./.github/actions/toolchain-shared
7969 if : ${{ github.event_name == 'workflow_run' }}
8070 with :
81- rust_toolchain_version : ${{ matrix.rust_and_os. rust_toolchain_version }}
71+ rust_toolchain_version : ${{ matrix.rust_toolchain_version }}
8272 - name : start-fresh
8373 if : ${{ github.event_name == 'workflow_run' }}
8474 shell : bash
@@ -95,14 +85,11 @@ jobs:
9585 needs : ['define-matrix', 'refresh-cache']
9686 strategy :
9787 matrix :
98- rust_and_os : ${{ fromJSON(needs.define-matrix.outputs.matrix).include }}
88+ rust_toolchain_version : ${{ fromJSON(needs.define-matrix.outputs.rust_version) }}
89+ os : ${{ fromJSON(needs.define-matrix.outputs.os) }}
9990 ocaml_version : ${{ fromJSON(needs.define-matrix.outputs.ocaml_version) }}
10091 node : ${{ fromJSON(needs.define-matrix.outputs.node) }}
101- exclude :
102- # Skip Rust 1.84 due to linting issues - remove when
103- # https://github.com/o1-labs/proof-systems/pull/3245 is fixed
104- - rust_and_os : {rust_toolchain_version: '1.84', os: 'macos-latest'}
105- runs-on : ${{ matrix.rust_and_os.os }}
92+ runs-on : ${{ matrix.os }}
10693 steps :
10794 - name : Checkout repository
10895 uses : actions/checkout@v5
@@ -117,7 +104,7 @@ jobs:
117104 - name : Use shared Rust toolchain setting up steps
118105 uses : ./.github/actions/toolchain-shared
119106 with :
120- rust_toolchain_version : ${{ matrix.rust_and_os. rust_toolchain_version }}
107+ rust_toolchain_version : ${{ matrix.rust_toolchain_version }}
121108
122109 - name : Use shared OCaml setting up steps
123110 uses : ./.github/actions/ocaml-shared
@@ -178,8 +165,8 @@ jobs:
178165 if : >-
179166 github.event_name == 'push' &&
180167 github.ref == 'refs/heads/master' &&
181- matrix.rust_and_os. rust_toolchain_version == needs.define-matrix.outputs.default_rust_version &&
182- matrix.rust_and_os. os == needs.define-matrix.outputs.default_os
168+ matrix.rust_toolchain_version == needs.define-matrix.outputs.default_rust_version &&
169+ matrix.os == needs.define-matrix.outputs.default_os
183170 run : |
184171 eval $(opam env)
185172 RUSTDOCFLAGS="--enable-index-page -Zunstable-options" cargo +nightly doc --all-features --no-deps --workspace --exclude xtask
@@ -190,8 +177,8 @@ jobs:
190177 if : >-
191178 github.event_name == 'push' &&
192179 github.ref == 'refs/heads/master' &&
193- matrix.rust_and_os. rust_toolchain_version == needs.define-matrix.outputs.default_rust_version &&
194- matrix.rust_and_os. os == needs.define-matrix.outputs.default_os
180+ matrix.rust_toolchain_version == needs.define-matrix.outputs.default_rust_version &&
181+ matrix.os == needs.define-matrix.outputs.default_os
195182 with :
196183 github_token : ${{ secrets.GITHUB_TOKEN }}
197184 publish_dir : ./book/book/html
@@ -200,14 +187,11 @@ jobs:
200187 needs : ['define-matrix', 'refresh-cache']
201188 strategy :
202189 matrix :
203- rust_and_os : ${{ fromJSON(needs.define-matrix.outputs.matrix).include }}
190+ rust_toolchain_version : ${{ fromJSON(needs.define-matrix.outputs.rust_version) }}
191+ os : ${{ fromJSON(needs.define-matrix.outputs.os) }}
204192 ocaml_version : ${{ fromJSON(needs.define-matrix.outputs.ocaml_version) }}
205193 node : ${{ fromJSON(needs.define-matrix.outputs.node) }}
206- exclude :
207- # Skip Rust 1.84 due to linting issues - remove when
208- # https://github.com/o1-labs/proof-systems/pull/3245 is fixed
209- - rust_and_os : {rust_toolchain_version: '1.84', os: 'macos-latest'}
210- runs-on : ${{ matrix.rust_and_os.os }}
194+ runs-on : ${{ matrix.os }}
211195 steps :
212196 - name : Checkout repository
213197 uses : actions/checkout@v5
@@ -217,7 +201,7 @@ jobs:
217201 - name : Use shared Rust toolchain setting up steps
218202 uses : ./.github/actions/toolchain-shared
219203 with :
220- rust_toolchain_version : ${{ matrix.rust_and_os. rust_toolchain_version }}
204+ rust_toolchain_version : ${{ matrix.rust_toolchain_version }}
221205
222206 - name : Use shared OCaml setting up steps
223207 uses : ./.github/actions/ocaml-shared
@@ -236,10 +220,11 @@ jobs:
236220 needs : ['define-matrix', 'refresh-cache']
237221 strategy :
238222 matrix :
239- rust_and_os : ${{ fromJSON(needs.define-matrix.outputs.matrix).include }}
223+ rust_toolchain_version : ${{ fromJSON(needs.define-matrix.outputs.rust_version) }}
224+ os : ${{ fromJSON(needs.define-matrix.outputs.os) }}
240225 ocaml_version : ${{ fromJSON(needs.define-matrix.outputs.ocaml_version) }}
241226 node : ${{ fromJSON(needs.define-matrix.outputs.node) }}
242- runs-on : ${{ matrix.rust_and_os. os }}
227+ runs-on : ${{ matrix.os }}
243228 steps :
244229 - name : Checkout repository
245230 uses : actions/checkout@v5
@@ -249,7 +234,7 @@ jobs:
249234 - name : Use shared Rust toolchain setting up steps
250235 uses : ./.github/actions/toolchain-shared
251236 with :
252- rust_toolchain_version : ${{ matrix.rust_and_os. rust_toolchain_version }}
237+ rust_toolchain_version : ${{ matrix.rust_toolchain_version }}
253238
254239 - name : Use shared OCaml setting up steps
255240 uses : ./.github/actions/ocaml-shared
@@ -268,14 +253,11 @@ jobs:
268253 needs : ['define-matrix', 'refresh-cache']
269254 strategy :
270255 matrix :
271- rust_and_os : ${{ fromJSON(needs.define-matrix.outputs.matrix).include }}
256+ rust_toolchain_version : ${{ fromJSON(needs.define-matrix.outputs.rust_version) }}
257+ os : ${{ fromJSON(needs.define-matrix.outputs.os) }}
272258 ocaml_version : ${{ fromJSON(needs.define-matrix.outputs.ocaml_version) }}
273259 node : ${{ fromJSON(needs.define-matrix.outputs.node) }}
274- exclude :
275- # Skip Rust 1.84 due to linting issues - remove when
276- # https://github.com/o1-labs/proof-systems/pull/3245 is fixed
277- - rust_and_os : {rust_toolchain_version: '1.84', os: 'macos-latest'}
278- runs-on : ${{ matrix.rust_and_os.os }}
260+ runs-on : ${{ matrix.os }}
279261 steps :
280262 - name : Checkout repository
281263 uses : actions/checkout@v5
@@ -285,7 +267,7 @@ jobs:
285267 - name : Use shared Rust toolchain setting up steps
286268 uses : ./.github/actions/toolchain-shared
287269 with :
288- rust_toolchain_version : ${{ matrix.rust_and_os. rust_toolchain_version }}
270+ rust_toolchain_version : ${{ matrix.rust_toolchain_version }}
289271 components : llvm-tools-preview
290272
291273 - name : Use shared OCaml setting up steps
0 commit comments