5454 upload_binaries : true
5555 node-target : darwin-arm64
5656 rust-target : aarch64-apple-darwin
57- - os : windows-2022
57+ - os : windows-2025
5858 ocaml_compiler : 5.3.0
5959 upload_binaries : true
6060 node-target : win32-x64
6969
7070 runs-on : ${{matrix.os}}
7171
72+ env :
73+ # When changing the setup-ocaml version, also adjust it in the setup step further below.
74+ SETUP_OCAML_VERSION : 3.4.6 # OPAM <2.6.0
75+
7276 steps :
7377 - name : " Windows: Set git config"
7478 if : runner.os == 'Windows'
@@ -96,9 +100,10 @@ jobs:
96100 if : runner.os == 'Linux'
9710198102 with :
99- # See https://github.com/ocaml/setup-ocaml/blob/b2105f9/packages/setup-ocaml/src/unix.ts#L9
100- packages : bubblewrap darcs g++-multilib gcc-multilib mercurial musl-tools rsync
101- version : v3
103+ # https://github.com/ocaml/setup-ocaml/blob/2f57267f071bc8547dfcb9433ff21d44fffef190/packages/setup-ocaml/src/unix.ts#L48
104+ # plus OPAM wants cmake
105+ packages : bubblewrap darcs g++-multilib gcc-multilib mercurial musl-tools rsync cmake
106+ version : v4
102107
103108 - name : Restore rewatch build cache
104109 id : rewatch-build-cache
@@ -141,7 +146,7 @@ jobs:
141146 # matrix.ocaml_compiler may contain commas
142147 - name : Get OPAM cache key
143148 shell : bash
144- run : echo "opam_cache_key=opam-env-v8-${{ matrix.os }}-${{ matrix.ocaml_compiler }}-${{ hashFiles('*.opam') }}" | sed 's/,/-/g' >> $GITHUB_ENV
149+ run : echo "opam_cache_key=opam-env-v8-${{ matrix.os }}-${{ env.SETUP_OCAML_VERSION }}-${{ matrix.ocaml_compiler }}-${{ hashFiles('*.opam') }}" | sed 's/,/-/g' >> $GITHUB_ENV
145150
146151 - name : Restore OPAM environment
147152 id : cache-opam-env
@@ -152,12 +157,12 @@ jobs:
152157 ~/.opam
153158 _opam
154159 .opam-path
155- D :\cygwin
156- D :\.opam
160+ C :\cygwin
161+ C :\.opam
157162 key : ${{ env.opam_cache_key }}
158163
159164 - name : Use OCaml ${{matrix.ocaml_compiler}}
160- uses : ocaml/setup-ocaml@v3.3.2
165+ uses : ocaml/setup-ocaml@v3.4.6
161166 if : steps.cache-opam-env.outputs.cache-hit != 'true'
162167 with :
163168 ocaml-compiler : ${{matrix.ocaml_compiler}}
@@ -188,25 +193,29 @@ jobs:
188193 ~/.opam
189194 _opam
190195 .opam-path
191- D :\cygwin
192- D :\.opam
196+ C :\cygwin
197+ C :\.opam
193198 key : ${{ env.opam_cache_key }}
194199
195200 - name : Use cached OPAM environment
196201 if : steps.cache-opam-env.outputs.cache-hit == 'true'
197202 run : |
198- # https://github.com/ocaml/setup-ocaml/blob/b2105f9/packages/setup-ocaml/src/installer.ts#L33
199- echo "OPAMVERBOSE=$RUNNER_DEBUG" >> "$GITHUB_ENV"
200- echo "OPAMCOLOR=always" >> "$GITHUB_ENV"
201- echo "OPAMCONFIRMLEVEL=unsafe-yes" >> "$GITHUB_ENV"
202- echo "OPAMERRLOGLEN=0" >> "$GITHUB_ENV"
203- echo "OPAMPRECISETRACKING=1" >> "$GITHUB_ENV"
204- echo "OPAMYES=1" >> "$GITHUB_ENV"
203+ # https://github.com/ocaml/setup-ocaml/blob/v3.4.6/packages/setup-ocaml/src/installer.ts
204+ echo "OPAMCOLOR=always" >> "$GITHUB_ENV"
205+ echo "OPAMCONFIRMLEVEL=unsafe-yes" >> "$GITHUB_ENV"
206+ echo "OPAMDOWNLOADJOBS=4" >> "$GITHUB_ENV"
207+ echo "OPAMERRLOGLEN=0" >> "$GITHUB_ENV"
208+ echo "OPAMEXTERNALSOLVER=builtin-0install" >> "$GITHUB_ENV"
209+ echo "OPAMPRECISETRACKING=1" >> "$GITHUB_ENV"
210+ echo "OPAMRETRIES=10" >> "$GITHUB_ENV"
211+ echo "OPAMSOLVERTIMEOUT=600" >> "$GITHUB_ENV"
212+ echo "OPAMYES=1" >> "$GITHUB_ENV"
213+ echo "CLICOLOR_FORCE=1" >> "$GITHUB_ENV"
205214
206215 if [[ "$RUNNER_OS" != "Windows" ]]; then
207216 echo "OPAMROOT=$HOME/.opam" >> "$GITHUB_ENV"
208217 else
209- echo "OPAMROOT=D :\\.opam" >> "$GITHUB_ENV"
218+ echo "OPAMROOT=C :\\.opam" >> "$GITHUB_ENV"
210219 fi
211220
212221 OPAM_PATH="$(cat .opam-path)"
@@ -218,27 +227,18 @@ jobs:
218227 fsutil behavior set symlinkEvaluation R2L:1 R2R:1
219228 fsutil behavior query SymlinkEvaluation
220229
221- CYGWIN="winsymlinks:native"
222- CYGWIN_ROOT="D:\\cygwin"
223- CYGWIN_ROOT_BIN="D:\\cygwin\\bin"
224- CYGWIN_ROOT_WRAPPERBIN="D:\\cygwin\\wrapperbin"
225-
226230 echo "HOME=$USERPROFILE" >> "$GITHUB_ENV"
227231 echo "MSYS=winsymlinks:native" >> "$GITHUB_ENV"
228- echo "CYGWIN=$CYGWIN" >> "$GITHUB_ENV"
229- echo "CYGWIN_ROOT=$CYGWIN_ROOT" >> "$GITHUB_ENV"
230- echo "CYGWIN_ROOT_BIN=$CYGWIN_ROOT_BIN" >> "$GITHUB_ENV"
231- echo "CYGWIN_ROOT_WRAPPERBIN=$CYGWIN_ROOT_WRAPPERBIN" >> "$GITHUB_ENV"
232-
233- echo "$CYGWIN_ROOT_WRAPPERBIN" >> "$GITHUB_PATH"
232+ echo "CYGWIN=winsymlinks:native" >> "$GITHUB_ENV"
233+ echo "BASH_ENV=C:\\cygwin\\bash_env" >> "$GITHUB_ENV"
234234 fi
235235 shell : bash
236236
237237 - name : Compiler build state key
238238 id : compiler-build-state-key
239239 shell : bash
240240 run : |
241- echo "value=compiler-build-state-v1-${{ matrix.os }}-${{ matrix.ocaml_compiler }}-${{ hashFiles('*.opam') }}" \
241+ echo "value=compiler-build-state-v1-${{ matrix.os }}-${{ env.SETUP_OCAML_VERSION }}-${{ matrix.ocaml_compiler }}-${{ hashFiles('*.opam') }}" \
242242 | sed 's/,/-/g' >> "$GITHUB_OUTPUT"
243243
244244 - name : Restore compiler build state
@@ -247,7 +247,7 @@ jobs:
247247 uses : actions/cache/restore@v4
248248 with :
249249 path : |
250- D :\.cache\dune
250+ C :\.cache\dune
251251 ~/.cache/dune
252252 _build
253253 key : ${{ steps.compiler-build-state-key.outputs.value }}
@@ -277,7 +277,7 @@ jobs:
277277 uses : actions/cache/save@v4
278278 with :
279279 path : |
280- D :\.cache\dune
280+ C :\.cache\dune
281281 ~/.cache/dune
282282 _build
283283 key : ${{ steps.compiler-build-state-key.outputs.value }}
@@ -542,7 +542,7 @@ jobs:
542542 - os : macos-15
543543 - os : ubuntu-24.04
544544 - os : ubuntu-24.04-arm
545- - os : windows-2022
545+ - os : windows-2025
546546 runs-on : ${{ matrix.os }}
547547 steps :
548548 - name : Checkout
@@ -591,7 +591,7 @@ jobs:
591591 - os : macos-15
592592 - os : ubuntu-24.04
593593 - os : ubuntu-24.04-arm
594- - os : windows-2022
594+ - os : windows-2025
595595 runs-on : ${{ matrix.os }}
596596 steps :
597597 - name : Install pnpm
@@ -644,7 +644,7 @@ jobs:
644644 - os : macos-15
645645 - os : ubuntu-24.04
646646 - os : ubuntu-24.04-arm
647- - os : windows-2022
647+ - os : windows-2025
648648 runs-on : ${{ matrix.os }}
649649 steps :
650650 - name : Checkout
0 commit comments