@@ -27,14 +27,19 @@ jobs:
27
27
include :
28
28
- os : macos-13 # x64
29
29
rust-target : x86_64-apple-darwin
30
+ node-target : darwin-x64
30
31
- os : macos-14 # ARM
31
32
rust-target : aarch64-apple-darwin
33
+ node-target : darwin-arm64
32
34
- os : ubuntu-24.04 # x64
33
35
rust-target : x86_64-unknown-linux-musl
36
+ node-target : linux-x64
34
37
- os : ubuntu-24.04-arm # ARM
35
38
rust-target : aarch64-unknown-linux-musl
39
+ node-target : linux-arm64
36
40
- os : windows-latest
37
41
rust-target : x86_64-pc-windows-gnu
42
+ node-target : win32-x64
38
43
39
44
runs-on : ${{matrix.os}}
40
45
@@ -66,25 +71,24 @@ jobs:
66
71
uses : dtolnay/rust-toolchain@master
67
72
with :
68
73
toolchain : stable
69
- targets : ${{matrix.rust-target}}
74
+ targets : ${{ matrix.rust-target }}
70
75
71
76
- name : Build rewatch
72
77
if : steps.build-cache.outputs.cache-hit != 'true'
73
- run : cargo build --manifest-path rewatch/Cargo.toml --target ${{matrix.rust-target}} --release
74
-
75
- - name : Copy rewatch exe to platform bin dir
76
78
run : |
77
- cp rewatch/target/${{matrix.rust-target}}/release/rewatch${{ runner.os == 'Windows' && '.exe' || '' }} rewatch
78
- node ./scripts/copyExes.js -rewatch
79
+ cargo build --manifest-path rewatch/Cargo.toml --target ${{ matrix.rust-target }} --release
79
80
80
- - name : Get artifact dir name
81
- run : node .github/workflows/get_artifact_dir_name.js
81
+ - name : Copy rewatch binary
82
+ run : |
83
+ cp rewatch/target/${{ matrix.rust-target }}/release/rewatch${{ runner.os == 'Windows' && '.exe' || '' }} rewatch.exe
84
+ shell : bash
82
85
83
86
- name : " Upload artifact: rewatch binary"
84
87
uses : actions/upload-artifact@v4
85
88
with :
86
- name : rewatch-${{env.artifact_dir_name}}
87
- path : ${{ env.artifact_dir_name }}
89
+ name : rewatch-${{ matrix.node-target }}
90
+ path : rewatch.exe
91
+ if-no-files-found : error
88
92
89
93
build-compiler :
90
94
strategy :
@@ -95,21 +99,26 @@ jobs:
95
99
ocaml_compiler : ocaml-variants.5.3.0+options,ocaml-option-static
96
100
upload_binaries : true
97
101
upload_libs : true
102
+ node-target : linux-x64
98
103
- os : ubuntu-24.04-arm # ARM
99
104
ocaml_compiler : ocaml-variants.5.3.0+options,ocaml-option-static
100
105
upload_binaries : true
101
106
# Build the playground compiler and run the benchmarks on the fastest runner
102
107
build_playground : true
103
108
benchmarks : true
109
+ node-target : linux-arm64
104
110
- os : macos-13 # x64
105
111
ocaml_compiler : 5.3.0
106
112
upload_binaries : true
113
+ node-target : darwin-x64
107
114
- os : macos-14 # ARM
108
115
ocaml_compiler : 5.3.0
109
116
upload_binaries : true
117
+ node-target : darwin-arm64
110
118
- os : windows-latest
111
119
ocaml_compiler : 5.3.0
112
120
upload_binaries : true
121
+ node-target : win32-x64
113
122
114
123
# Verify that the compiler still builds with older OCaml versions
115
124
- os : ubuntu-24.04
@@ -144,9 +153,6 @@ jobs:
144
153
cache : yarn
145
154
node-version-file : .nvmrc
146
155
147
- - name : Get artifact dir name
148
- run : node .github/workflows/get_artifact_dir_name.js
149
-
150
156
- name : Install dependencies (Linux)
151
157
if : runner.os == 'Linux'
152
158
uses : awalsh128/cache-apt-pkgs-action@v1.4.3
@@ -303,13 +309,13 @@ jobs:
303
309
run : yarn install
304
310
305
311
- name : Copy compiler exes to platform bin dir
306
- run : node ./ scripts/copyExes.js -compiler
312
+ run : node scripts/copyExes.js - -compiler
307
313
308
314
- name : Restore ninja build cache
309
315
id : ninja-build-cache
310
316
uses : actions/cache@v4
311
317
with :
312
- path : ${{ env.artifact_dir_name }}/ninja.exe
318
+ path : packages/@rescript/ ${{ matrix.node-target }}/bin /ninja.exe
313
319
key : ninja-build-v1-${{ matrix.os }}-${{ hashFiles('ninja/src/**') }}
314
320
315
321
- name : Setup Python for ninja build
@@ -336,7 +342,7 @@ jobs:
336
342
337
343
- name : Copy ninja exe to platform bin dir
338
344
if : steps.ninja-build-cache.outputs.cache-hit != 'true'
339
- run : node ./ scripts/copyExes.js -ninja
345
+ run : node scripts/copyExes.js - -ninja
340
346
341
347
- name : " Syntax: Run roundtrip tests"
342
348
if : ${{ runner.os != 'Windows' }}
@@ -423,8 +429,8 @@ jobs:
423
429
if : matrix.upload_binaries
424
430
uses : actions/upload-artifact@v4
425
431
with :
426
- name : binaries-${{ env.artifact_dir_name }}
427
- path : ${{ env.artifact_dir_name }}
432
+ name : binaries-${{ matrix.node-target }}
433
+ path : packages/@rescript/ ${{ matrix.node-target }}/bin
428
434
429
435
- name : " Upload artifacts: lib/ocaml"
430
436
if : matrix.upload_libs
@@ -491,15 +497,15 @@ jobs:
491
497
matrix :
492
498
include :
493
499
- os : macos-13
494
- target : darwin-x64
500
+ node- target : darwin-x64
495
501
- os : macos-14
496
- target : darwin-arm64
502
+ node- target : darwin-arm64
497
503
- os : ubuntu-24.04
498
- target : linux-x64
504
+ node- target : linux-x64
499
505
- os : ubuntu-24.04-arm
500
- target : linux-arm64
506
+ node- target : linux-arm64
501
507
- os : windows-latest
502
- target : win32-x64
508
+ node- target : win32-x64
503
509
504
510
runs-on : ${{ matrix.os }}
505
511
@@ -535,7 +541,7 @@ jobs:
535
541
run : |
536
542
npm i --ignore-scripts --no-audit \
537
543
rescript-${{ needs.package.outputs.rescript_version }}.tgz \
538
- rescript-${{ matrix.target }}-${{ needs.package.outputs.rescript_version }}.tgz
544
+ rescript-${{ matrix.node- target }}-${{ needs.package.outputs.rescript_version }}.tgz
539
545
shell : bash
540
546
working-directory : ${{ steps.tmp-dir.outputs.path }}
541
547
0 commit comments