Skip to content

Commit fe805e7

Browse files
committed
CI: setup-ocaml 3.4.6 / OPAM 2.4 / windows-2025 runners
1 parent 2bf8be5 commit fe805e7

File tree

2 files changed

+37
-37
lines changed

2 files changed

+37
-37
lines changed

.github/workflows/ci.yml

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
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
@@ -69,6 +69,10 @@ jobs:
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'
97101
uses: awalsh128/[email protected]
98102
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

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ Happy hacking!
1414

1515
> Most of our contributors are working on Apple machines, so all our instructions are currently macOS / Linux centric. Contributions for Windows development welcome!
1616
17-
- [Node.js](https://nodejs.org/) v22.x
17+
- [Node.js](https://nodejs.org/) v22.x or newer
1818
- [Yarn CLI](https://yarnpkg.com/getting-started/install) (can be installed with `corepack`, Homebrew, etc)
1919
- C compiler toolchain (usually installed with `xcode` on Mac)
2020
- Python <= 3.11 (required to build ninja)
2121
- Rust toolchain (required to build rewatch; follow the instructions at https://www.rust-lang.org/tools/install)
22-
- `opam` (OCaml Package Manager) v2.2.0
22+
- `opam` (OCaml Package Manager) v2.2.0 or newer
2323
- VSCode (+ [OCaml Platform Extension](https://marketplace.visualstudio.com/items?itemName=ocamllabs.ocaml-platform))
2424

2525
## Cloning the Git Repo

0 commit comments

Comments
 (0)