@napi-rs/cli 3.0.0-alpha.6 → 3.0.0-alpha.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/dist/api/artifacts.js +28 -7
  2. package/dist/api/artifacts.js.map +1 -1
  3. package/dist/api/build.js +220 -39
  4. package/dist/api/build.js.map +1 -1
  5. package/dist/api/create-npm-dirs.js +45 -8
  6. package/dist/api/create-npm-dirs.js.map +1 -1
  7. package/dist/api/new.js +57 -20
  8. package/dist/api/new.js.map +1 -1
  9. package/dist/api/pre-publish.js +9 -7
  10. package/dist/api/pre-publish.js.map +1 -1
  11. package/dist/api/rename.js +9 -1
  12. package/dist/api/rename.js.map +1 -1
  13. package/dist/api/templates/ci-template.d.ts +3 -1
  14. package/dist/api/templates/ci-template.js +124 -124
  15. package/dist/api/templates/ci-template.js.map +1 -1
  16. package/dist/api/templates/ci.yml.d.ts +3 -1
  17. package/dist/api/templates/ci.yml.js +21 -5
  18. package/dist/api/templates/ci.yml.js.map +1 -1
  19. package/dist/api/templates/js-binding.js +104 -214
  20. package/dist/api/templates/js-binding.js.map +1 -1
  21. package/dist/api/templates/lib.rs.js +1 -4
  22. package/dist/api/templates/lib.rs.js.map +1 -1
  23. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  24. package/dist/api/templates/load-wasi-template.js +166 -0
  25. package/dist/api/templates/load-wasi-template.js.map +1 -0
  26. package/dist/api/templates/package.json.d.ts +9 -2
  27. package/dist/api/templates/package.json.js +26 -4
  28. package/dist/api/templates/package.json.js.map +1 -1
  29. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  30. package/dist/api/templates/wasi-worker-template.js +122 -0
  31. package/dist/api/templates/wasi-worker-template.js.map +1 -0
  32. package/dist/api/universalize.js +5 -5
  33. package/dist/api/universalize.js.map +1 -1
  34. package/dist/api/version.js +2 -2
  35. package/dist/api/version.js.map +1 -1
  36. package/dist/commands/artifacts.js +2 -2
  37. package/dist/commands/artifacts.js.map +1 -1
  38. package/dist/commands/build.js +1 -1
  39. package/dist/commands/build.js.map +1 -1
  40. package/dist/commands/new.js +30 -8
  41. package/dist/commands/new.js.map +1 -1
  42. package/dist/def/artifacts.d.ts +21 -1
  43. package/dist/def/artifacts.js +10 -2
  44. package/dist/def/artifacts.js.map +1 -1
  45. package/dist/def/build.d.ts +22 -4
  46. package/dist/def/build.js +16 -4
  47. package/dist/def/build.js.map +1 -1
  48. package/dist/def/create-npm-dirs.d.ts +10 -0
  49. package/dist/def/create-npm-dirs.js +4 -0
  50. package/dist/def/create-npm-dirs.js.map +1 -1
  51. package/dist/def/new.d.ts +25 -7
  52. package/dist/def/new.js +11 -1
  53. package/dist/def/new.js.map +1 -1
  54. package/dist/def/pre-publish.d.ts +12 -2
  55. package/dist/def/pre-publish.js +7 -3
  56. package/dist/def/pre-publish.js.map +1 -1
  57. package/dist/def/rename.d.ts +16 -6
  58. package/dist/def/rename.js +5 -1
  59. package/dist/def/rename.js.map +1 -1
  60. package/dist/def/universalize.d.ts +10 -0
  61. package/dist/def/universalize.js +4 -0
  62. package/dist/def/universalize.js.map +1 -1
  63. package/dist/def/version.d.ts +10 -0
  64. package/dist/def/version.js +4 -0
  65. package/dist/def/version.js.map +1 -1
  66. package/dist/index.cjs +8143 -14638
  67. package/dist/index.d.ts +1 -0
  68. package/dist/index.js +1 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  71. package/dist/utils/__tests__/config.spec.js +63 -0
  72. package/dist/utils/__tests__/config.spec.js.map +1 -0
  73. package/dist/utils/__tests__/typegen.spec.js +8 -4
  74. package/dist/utils/__tests__/typegen.spec.js.map +1 -1
  75. package/dist/utils/cargo.js +1 -1
  76. package/dist/utils/cargo.js.map +1 -1
  77. package/dist/utils/config.d.ts +49 -5
  78. package/dist/utils/config.js +38 -6
  79. package/dist/utils/config.js.map +1 -1
  80. package/dist/utils/index.d.ts +0 -1
  81. package/dist/utils/index.js +0 -1
  82. package/dist/utils/index.js.map +1 -1
  83. package/dist/utils/metadata.js +2 -2
  84. package/dist/utils/metadata.js.map +1 -1
  85. package/dist/utils/misc.d.ts +1 -2
  86. package/dist/utils/misc.js +3 -3
  87. package/dist/utils/misc.js.map +1 -1
  88. package/dist/utils/target.d.ts +7 -5
  89. package/dist/utils/target.js +17 -3
  90. package/dist/utils/target.js.map +1 -1
  91. package/dist/utils/typegen.d.ts +1 -1
  92. package/dist/utils/typegen.js +29 -9
  93. package/dist/utils/typegen.js.map +1 -1
  94. package/dist/utils/version.d.ts +2 -1
  95. package/dist/utils/version.js +10 -8
  96. package/dist/utils/version.js.map +1 -1
  97. package/package.json +25 -24
  98. package/src/api/artifacts.ts +81 -9
  99. package/src/api/build.ts +379 -58
  100. package/src/api/create-npm-dirs.ts +56 -8
  101. package/src/api/new.ts +89 -31
  102. package/src/api/pre-publish.ts +13 -7
  103. package/src/api/rename.ts +10 -1
  104. package/src/api/templates/ci-template.ts +134 -124
  105. package/src/api/templates/ci.yml.ts +27 -6
  106. package/src/api/templates/js-binding.ts +105 -214
  107. package/src/api/templates/lib.rs.ts +1 -4
  108. package/src/api/templates/load-wasi-template.ts +180 -0
  109. package/src/api/templates/package.json.ts +47 -5
  110. package/src/api/templates/wasi-worker-template.ts +122 -0
  111. package/src/api/universalize.ts +13 -8
  112. package/src/api/version.ts +5 -2
  113. package/src/commands/artifacts.ts +2 -2
  114. package/src/commands/build.ts +1 -1
  115. package/src/commands/new.ts +31 -8
  116. package/src/def/artifacts.ts +22 -3
  117. package/src/def/build.ts +36 -8
  118. package/src/def/create-npm-dirs.ts +9 -0
  119. package/src/def/new.ts +28 -3
  120. package/src/def/pre-publish.ts +12 -3
  121. package/src/def/rename.ts +11 -2
  122. package/src/def/universalize.ts +9 -0
  123. package/src/def/version.ts +9 -0
  124. package/src/index.ts +2 -0
  125. package/src/utils/__tests__/__fixtures__/napi_type_def +130 -130
  126. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  127. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  128. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
  129. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  130. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +713 -158
  131. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  132. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
  133. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  134. package/src/utils/__tests__/config.spec.ts +81 -0
  135. package/src/utils/__tests__/typegen.spec.ts +18 -3
  136. package/src/utils/cargo.ts +1 -1
  137. package/src/utils/config.ts +114 -12
  138. package/src/utils/index.ts +0 -1
  139. package/src/utils/metadata.ts +2 -2
  140. package/src/utils/misc.ts +11 -3
  141. package/src/utils/target.ts +22 -4
  142. package/src/utils/typegen.ts +37 -8
  143. package/src/utils/version.ts +10 -8
  144. package/dist/api/load-wasi-template.d.ts +0 -1
  145. package/dist/api/load-wasi-template.js +0 -63
  146. package/dist/api/load-wasi-template.js.map +0 -1
  147. package/dist/api/wasi-worker-template.d.ts +0 -1
  148. package/dist/api/wasi-worker-template.js +0 -53
  149. package/dist/api/wasi-worker-template.js.map +0 -1
  150. package/dist/utils/ci.d.ts +0 -11
  151. package/dist/utils/ci.js +0 -96
  152. package/dist/utils/ci.js.map +0 -1
  153. package/src/api/load-wasi-template.ts +0 -65
  154. package/src/api/wasi-worker-template.ts +0 -52
  155. package/src/utils/ci.ts +0 -111
@@ -1,4 +1,4 @@
1
- export const YAML = () => `
1
+ export const YAML = (packageManager, wasiTargetName) => `
2
2
  name: CI
3
3
 
4
4
  env:
@@ -32,82 +32,68 @@ jobs:
32
32
  settings:
33
33
  - host: macos-latest
34
34
  target: 'x86_64-apple-darwin'
35
- build: |
36
- yarn build --platform
37
- strip -x *.node
35
+ build: ${packageManager} build --platform --target x86_64-apple-darwin
38
36
  - host: windows-latest
39
- build: yarn build --platform
37
+ build: ${packageManager} build --platform
40
38
  target: 'x86_64-pc-windows-msvc'
41
39
  - host: windows-latest
42
40
  build: |
43
- yarn build --platform --target i686-pc-windows-msvc
44
- yarn test
41
+ ${packageManager} build --platform --target i686-pc-windows-msvc
42
+ ${packageManager} test
45
43
  target: 'i686-pc-windows-msvc'
46
44
  - host: ubuntu-latest
47
45
  target: 'x86_64-unknown-linux-gnu'
48
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
49
- build: >-
50
- set -e &&\n
51
- yarn build --platform --target x86_64-unknown-linux-gnu &&\n
52
- strip *.node
46
+ build: ${packageManager} build --platform --target x86_64-unknown-linux-gnu --use-napi-cross
53
47
  - host: ubuntu-latest
54
48
  target: 'x86_64-unknown-linux-musl'
55
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
56
- build: >-
57
- set -e &&
58
- yarn build --platform &&
59
- strip *.node
49
+ build: ${packageManager} build --platform --target x86_64-unknown-linux-musl -x
60
50
  - host: macos-latest
61
51
  target: 'aarch64-apple-darwin'
62
- build: |
63
- yarn build --platform --target aarch64-apple-darwin
64
- strip -x *.node
52
+ build: ${packageManager} build --platform --target aarch64-apple-darwin
65
53
  - host: ubuntu-latest
66
54
  target: 'aarch64-unknown-linux-gnu'
67
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
68
- build: >-
69
- set -e &&\n
70
- yarn build --platform --target aarch64-unknown-linux-gnu &&\n
71
- aarch64-unknown-linux-gnu-strip *.node
55
+ build: ${packageManager} build --platform --target aarch64-unknown-linux-gnu --use-napi-cross
72
56
  - host: ubuntu-latest
73
57
  target: 'armv7-unknown-linux-gnueabihf'
74
- setup: |
75
- sudo apt-get update
76
- sudo apt-get install gcc-arm-linux-gnueabihf -y
77
- build: |
78
- yarn build --platform --target armv7-unknown-linux-gnueabihf --cross-compile
79
- arm-linux-gnueabihf-strip *.node
58
+ build: ${packageManager} build --platform --target armv7-unknown-linux-gnueabihf --use-napi-cross
59
+ - host: ubuntu-latest
60
+ target: 'armv7-unknown-linux-musleabihf'
61
+ build: ${packageManager} build --platform --target armv7-unknown-linux-musleabihf -x
80
62
  - host: ubuntu-latest
81
63
  target: 'aarch64-linux-android'
82
- build: |
83
- yarn build --platform --target aarch64-linux-android
84
- \${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
64
+ build: ${packageManager} build --platform --target aarch64-linux-android
85
65
  - host: ubuntu-latest
86
66
  target: 'armv7-linux-androideabi'
87
- build: |
88
- yarn build --platform --target armv7-linux-androideabi
89
- \${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
67
+ build: ${packageManager} build --platform --target armv7-linux-androideabi
90
68
  - host: ubuntu-latest
91
69
  target: 'aarch64-unknown-linux-musl'
92
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
93
- build: >-
94
- set -e &&\n
95
- rustup target add aarch64-unknown-linux-musl &&\n
96
- yarn build --platform --target aarch64-unknown-linux-musl &&\n
97
- /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
70
+ build: ${packageManager} build --platform --target aarch64-unknown-linux-musl -x
98
71
  - host: windows-latest
99
72
  target: 'aarch64-pc-windows-msvc'
100
- build: yarn build --platform --target aarch64-pc-windows-msvc
73
+ build: ${packageManager} build --platform --target aarch64-pc-windows-msvc
101
74
  - host: ubuntu-latest
102
75
  target: 'riscv64gc-unknown-linux-gnu'
103
76
  setup: |
104
77
  sudo apt-get update
105
78
  sudo apt-get install gcc-riscv64-linux-gnu -y
106
- build: |
107
- yarn build --platform --target riscv64gc-unknown-linux-gnu
108
- riscv64-linux-gnu-strip *.node
79
+ build: ${packageManager} build --platform --target riscv64gc-unknown-linux-gnu
80
+ - host: ubuntu-latest
81
+ target: 'powerpc64le-unknown-linux-gnu'
82
+ setup: |
83
+ sudo apt-get update
84
+ sudo apt-get install gcc-powerpc64le-linux-gnu -y
85
+ build: ${packageManager} build --platform --target powerpc64le-unknown-linux-gnu
86
+ - host: ubuntu-latest
87
+ target: 's390x-unknown-linux-gnu'
88
+ setup: |
89
+ sudo apt-get update
90
+ sudo apt-get install gcc-s390x-linux-gnu -y
91
+ build: ${packageManager} build --platform --target s390x-unknown-linux-gnu
92
+ - host: ubuntu-latest
93
+ target: '${wasiTargetName}'
94
+ build: ${packageManager} build --platform --target ${wasiTargetName}
109
95
 
110
- name: stable - \${{ matrix.settings.target }} - node@18
96
+ name: stable - \${{ matrix.settings.target }} - node@20
111
97
  runs-on: \${{ matrix.settings.host }}
112
98
 
113
99
  steps:
@@ -115,14 +101,12 @@ jobs:
115
101
 
116
102
  - name: Setup node
117
103
  uses: actions/setup-node@v4
118
- if: \${{ !matrix.settings.docker }}
119
104
  with:
120
- node-version: 18
121
- cache: yarn
105
+ node-version: 20
106
+ cache: ${packageManager}
122
107
 
123
108
  - name: Install
124
109
  uses: dtolnay/rust-toolchain@stable
125
- if: \${{ !matrix.settings.docker }}
126
110
  with:
127
111
  toolchain: stable
128
112
  targets: \${{ matrix.settings.target }}
@@ -134,14 +118,15 @@ jobs:
134
118
  ~/.cargo/registry/index/
135
119
  ~/.cargo/registry/cache/
136
120
  ~/.cargo/git/db/
121
+ ~/.napi-rs
137
122
  .cargo-cache
138
123
  target/
139
124
  key: \${{ matrix.settings.target }}-cargo-\${{ matrix.settings.host }}
140
125
 
141
126
  - uses: goto-bus-stop/setup-zig@v2
142
- if: \${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }}
127
+ if: \${{ contains(matrix.settings.target, 'musl') }}
143
128
  with:
144
- version: 0.11.0
129
+ version: 0.12.0
145
130
 
146
131
  - name: Setup toolchain
147
132
  run: \${{ matrix.settings.setup }}
@@ -154,36 +139,35 @@ jobs:
154
139
  shell: bash
155
140
 
156
141
  - name: 'Install dependencies'
157
- run: yarn install
142
+ run: ${packageManager} install
158
143
 
159
144
  - name: Setup node x86
160
145
  uses: actions/setup-node@v4
161
146
  if: matrix.settings.target == 'i686-pc-windows-msvc'
162
147
  with:
163
- node-version: 18
164
- cache: yarn
148
+ node-version: 20
165
149
  architecture: x86
166
150
 
167
- - name: Build in docker
168
- uses: addnab/docker-run-action@v3
169
- if: \${{ matrix.settings.docker }}
170
- with:
171
- image: \${{ matrix.settings.docker }}
172
- options: --user 0:0 -v \${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v \${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v \${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v \${{ github.workspace }}:/build -w /build
173
- run: \${{ matrix.settings.build }}
174
-
175
151
  - name: 'Build'
176
152
  run: \${{ matrix.settings.build }}
177
- if: \${{ !matrix.settings.docker }}
178
153
  shell: bash
179
154
 
180
155
  - name: Upload artifact
181
- uses: actions/upload-artifact@v3
156
+ uses: actions/upload-artifact@v4
157
+ if: matrix.settings.target != '${wasiTargetName}'
182
158
  with:
183
159
  name: bindings-\${{ matrix.settings.target }}
184
160
  path: "*.node"
185
161
  if-no-files-found: error
186
162
 
163
+ - name: Upload artifact
164
+ uses: actions/upload-artifact@v4
165
+ if: matrix.settings.target == '${wasiTargetName}'
166
+ with:
167
+ name: bindings-\${{ matrix.settings.target }}
168
+ path: "*.wasm"
169
+ if-no-files-found: error
170
+
187
171
  build-freebsd:
188
172
  runs-on: macos-12
189
173
  name: Build FreeBSD
@@ -191,20 +175,21 @@ jobs:
191
175
  - uses: actions/checkout@v4
192
176
  - name: Build
193
177
  id: build
194
- uses: cross-platform-actions/action@v0.21.0
178
+ uses: cross-platform-actions/action@v0.23.0
179
+ timeout-minutes: 30
195
180
  env:
196
181
  DEBUG: 'napi:*'
197
182
  RUSTUP_IO_THREADS: 1
198
183
  with:
199
184
  operating_system: freebsd
200
185
  version: '13.2'
201
- memory: 13G
186
+ memory: 8G
202
187
  cpu_count: 3
203
188
  environment_variables: 'DEBUG RUSTUP_IO_THREADS'
204
189
  shell: bash
205
- prepare: |
190
+ run: |
206
191
  sudo pkg install -y -f curl node libnghttp2 npm
207
- sudo npm install -g yarn --ignore-scripts
192
+ sudo npm install -g ${packageManager} --ignore-scripts
208
193
  curl https://sh.rustup.rs -sSf --output rustup.sh
209
194
  sh rustup.sh -y --profile minimal --default-toolchain stable
210
195
  source "$HOME/.cargo/env"
@@ -219,15 +204,15 @@ jobs:
219
204
  whoami
220
205
  env
221
206
  freebsd-version
222
- yarn install
223
- yarn build
207
+ ${packageManager} install
208
+ ${packageManager} build
224
209
  strip -x *.node
225
210
  yarn test
226
211
  rm -rf node_modules
227
212
  rm -rf target
228
213
  rm -rf .yarn/cache
229
214
  - name: Upload artifact
230
- uses: actions/upload-artifact@v3
215
+ uses: actions/upload-artifact@v4
231
216
  with:
232
217
  name: bindings-freebsd
233
218
  path: "*.node"
@@ -245,7 +230,6 @@ jobs:
245
230
  target: 'x86_64-apple-darwin'
246
231
  - host: windows-latest
247
232
  target: 'x86_64-pc-windows-msvc'
248
- node: ['16', '18']
249
233
  node: ['18', '20']
250
234
  runs-on: \${{ matrix.settings.host }}
251
235
 
@@ -256,13 +240,13 @@ jobs:
256
240
  uses: actions/setup-node@v4
257
241
  with:
258
242
  node-version: \${{ matrix.node }}
259
- cache: 'yarn'
243
+ cache: '${packageManager}'
260
244
 
261
245
  - name: 'Install dependencies'
262
- run: yarn install
246
+ run: ${packageManager} install
263
247
 
264
248
  - name: Download artifacts
265
- uses: actions/download-artifact@v3
249
+ uses: actions/download-artifact@v4
266
250
  with:
267
251
  name: bindings-\${{ matrix.settings.target }}
268
252
  path: .
@@ -272,7 +256,7 @@ jobs:
272
256
  shell: bash
273
257
 
274
258
  - name: Test bindings
275
- run: yarn test
259
+ run: ${packageManager} test
276
260
 
277
261
  test-linux-x64-gnu-binding:
278
262
  name: Test bindings on Linux-x64-gnu - node@\${{ matrix.node }}
@@ -281,7 +265,6 @@ jobs:
281
265
  strategy:
282
266
  fail-fast: false
283
267
  matrix:
284
- node: ['16', '18']
285
268
  node: ['18', '20']
286
269
  runs-on: ubuntu-latest
287
270
 
@@ -292,13 +275,13 @@ jobs:
292
275
  uses: actions/setup-node@v4
293
276
  with:
294
277
  node-version: \${{ matrix.node }}
295
- cache: 'yarn'
278
+ cache: '${packageManager}'
296
279
 
297
280
  - name: 'Install dependencies'
298
- run: yarn install
281
+ run: ${packageManager} install
299
282
 
300
283
  - name: Download artifacts
301
- uses: actions/download-artifact@v3
284
+ uses: actions/download-artifact@v4
302
285
  with:
303
286
  name: bindings-x86_64-unknown-linux-gnu
304
287
  path: .
@@ -317,7 +300,6 @@ jobs:
317
300
  strategy:
318
301
  fail-fast: false
319
302
  matrix:
320
- node: ['16', '18']
321
303
  node: ['18', '20']
322
304
  runs-on: ubuntu-latest
323
305
 
@@ -333,10 +315,10 @@ jobs:
333
315
  - name: 'Install dependencies'
334
316
  run: |
335
317
  yarn config set supportedArchitectures.libc "musl"
336
- yarn install
318
+ ${packageManager} install
337
319
 
338
320
  - name: Download artifacts
339
- uses: actions/download-artifact@v3
321
+ uses: actions/download-artifact@v4
340
322
  with:
341
323
  name: bindings-x86_64-unknown-linux-musl
342
324
  path: .
@@ -355,15 +337,14 @@ jobs:
355
337
  strategy:
356
338
  fail-fast: false
357
339
  matrix:
358
- node: ['16', '18']
359
- node: ['18', '20']
340
+ node: ['20']
360
341
  runs-on: ubuntu-latest
361
342
 
362
343
  steps:
363
344
  - uses: actions/checkout@v4
364
345
 
365
346
  - name: Download artifacts
366
- uses: actions/download-artifact@v3
347
+ uses: actions/download-artifact@v4
367
348
  with:
368
349
  name: bindings-aarch64-unknown-linux-gnu
369
350
  path: .
@@ -376,7 +357,7 @@ jobs:
376
357
  run: |
377
358
  yarn config set supportedArchitectures.cpu "arm64"
378
359
  yarn config set supportedArchitectures.libc "glibc"
379
- yarn install
360
+ ${packageManager} install
380
361
 
381
362
  - name: Set up QEMU
382
363
  uses: docker/setup-qemu-action@v3
@@ -389,10 +370,7 @@ jobs:
389
370
  with:
390
371
  image: node:\${{ matrix.node }}-slim
391
372
  options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
392
- run: |
393
- set -e
394
- yarn test
395
- ls -la
373
+ run: yarn test
396
374
 
397
375
  test-linux-aarch64-musl-binding:
398
376
  name: Test bindings on aarch64-unknown-linux-musl - node@\${{ matrix.node }}
@@ -401,7 +379,7 @@ jobs:
401
379
  strategy:
402
380
  fail-fast: false
403
381
  matrix:
404
- node: ['16', '18']
382
+ node: ['18', '20']
405
383
 
406
384
  runs-on: ubuntu-latest
407
385
 
@@ -409,7 +387,7 @@ jobs:
409
387
  - uses: actions/checkout@v4
410
388
 
411
389
  - name: Download artifacts
412
- uses: actions/download-artifact@v3
390
+ uses: actions/download-artifact@v4
413
391
  with:
414
392
  name: bindings-aarch64-unknown-linux-musl
415
393
  path: .
@@ -422,7 +400,7 @@ jobs:
422
400
  run: |
423
401
  yarn config set supportedArchitectures.cpu "arm64"
424
402
  yarn config set supportedArchitectures.libc "musl"
425
- yarn install
403
+ ${packageManager} install
426
404
 
427
405
  - name: Set up QEMU
428
406
  uses: docker/setup-qemu-action@v3
@@ -435,9 +413,7 @@ jobs:
435
413
  with:
436
414
  image: node:\${{ matrix.node }}-alpine
437
415
  options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
438
- run: |
439
- set -e
440
- yarn test
416
+ run: yarn test
441
417
 
442
418
  test-linux-arm-gnueabihf-binding:
443
419
  name: Test bindings on armv7-unknown-linux-gnueabihf - node@\${{ matrix.node }}
@@ -446,7 +422,6 @@ jobs:
446
422
  strategy:
447
423
  fail-fast: false
448
424
  matrix:
449
- node: ['16', '18']
450
425
  node: ['18', '20']
451
426
  runs-on: ubuntu-latest
452
427
 
@@ -454,7 +429,7 @@ jobs:
454
429
  - uses: actions/checkout@v4
455
430
 
456
431
  - name: Download artifacts
457
- uses: actions/download-artifact@v3
432
+ uses: actions/download-artifact@v4
458
433
  with:
459
434
  name: bindings-armv7-unknown-linux-gnueabihf
460
435
  path: .
@@ -466,7 +441,7 @@ jobs:
466
441
  - name: Install dependencies
467
442
  run: |
468
443
  yarn config set supportedArchitectures.cpu "arm"
469
- yarn install
444
+ ${packageManager} install
470
445
 
471
446
  - name: Set up QEMU
472
447
  uses: docker/setup-qemu-action@v3
@@ -479,10 +454,7 @@ jobs:
479
454
  with:
480
455
  image: node:\${{ matrix.node }}-bullseye-slim
481
456
  options: --platform linux/arm/v7 -v \${{ github.workspace }}:/build -w /build
482
- run: |
483
- set -e
484
- yarn test
485
- ls -la
457
+ run: ${packageManager} test
486
458
 
487
459
  universal-macOS:
488
460
  name: Build universal macOS binary
@@ -496,33 +468,62 @@ jobs:
496
468
  - name: Setup node
497
469
  uses: actions/setup-node@v4
498
470
  with:
499
- node-version: 18
500
- cache: yarn
471
+ node-version: 20
472
+ cache: ${packageManager}
501
473
 
502
474
  - name: 'Install dependencies'
503
- run: yarn install
475
+ run: ${packageManager} install
504
476
 
505
477
  - name: Download macOS x64 artifact
506
- uses: actions/download-artifact@v3
478
+ uses: actions/download-artifact@v4
507
479
  with:
508
480
  name: bindings-x86_64-apple-darwin
509
481
  path: .
510
482
  - name: Download macOS arm64 artifact
511
- uses: actions/download-artifact@v3
483
+ uses: actions/download-artifact@v4
512
484
  with:
513
485
  name: bindings-aarch64-apple-darwin
514
486
  path: .
515
487
 
516
488
  - name: Combine binaries
517
- run: yarn napi universalize
489
+ run: ${packageManager} napi universalize
518
490
 
519
491
  - name: Upload artifact
520
- uses: actions/upload-artifact@v3
492
+ uses: actions/upload-artifact@v4
521
493
  with:
522
494
  name: bindings-universal-apple-darwin
523
495
  path: "*.node"
524
496
  if-no-files-found: error
525
497
 
498
+ test-wasi-nodejs:
499
+ name: Test bindings on wasi - node@\${{ matrix.node }}
500
+ needs:
501
+ - build
502
+ strategy:
503
+ fail-fast: false
504
+ matrix:
505
+ node: ['18', '20']
506
+ runs-on: ubuntu-latest
507
+ steps:
508
+ - uses: actions/checkout@v4
509
+ - name: Download artifacts
510
+ uses: actions/download-artifact@v4
511
+ with:
512
+ name: bindings-${wasiTargetName}
513
+ path: .
514
+ - name: List packages
515
+ run: ls -R .
516
+ - uses: actions/setup-node@v4
517
+ with:
518
+ node-version: \${{ matrix.node }}
519
+ cache: ${packageManager}
520
+ - name: 'Install dependencies'
521
+ run: ${packageManager} install
522
+ - name: Test
523
+ run: ${packageManager} test
524
+ env:
525
+ NAPI_RS_FORCE_WASI: true
526
+
526
527
  publish:
527
528
  name: Publish
528
529
  runs-on: ubuntu-latest
@@ -533,6 +534,7 @@ jobs:
533
534
  - test-linux-arm-gnueabihf-binding
534
535
  - test-macOS-windows-binding
535
536
  - test-linux-aarch64-musl-binding
537
+ - test-wasi-nodejs
536
538
  - build-freebsd
537
539
 
538
540
  steps:
@@ -541,14 +543,15 @@ jobs:
541
543
  - name: Setup node
542
544
  uses: actions/setup-node@v4
543
545
  with:
544
- node-version: 18
545
- cache: 'yarn'
546
+ node-version: 20
547
+ cache: '${packageManager}'
548
+ registry-url: 'https://registry.npmjs.org'
546
549
 
547
550
  - name: 'Install dependencies'
548
- run: yarn install
551
+ run: ${packageManager} install
549
552
 
550
553
  - name: Download all artifacts
551
- uses: actions/download-artifact@v3
554
+ uses: actions/download-artifact@v4
552
555
  with:
553
556
  path: artifacts
554
557
 
@@ -561,20 +564,17 @@ jobs:
561
564
 
562
565
  - name: Publish
563
566
  run: |
564
- npm config set provenance true
565
567
  if git log -1 --pretty=%B | grep "^[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+$";
566
568
  then
567
- echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
568
- npm publish --access public
569
+ npm publish --access public --provenance
569
570
  elif git log -1 --pretty=%B | grep "^[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+";
570
571
  then
571
- echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
572
- npm publish --tag next --access public
572
+ npm publish --tag next --access public --provenance
573
573
  else
574
574
  echo "Not a release, skipping publish"
575
575
  fi
576
576
  env:
577
577
  GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
578
- NPM_TOKEN: \${{ secrets.NPM_TOKEN }}
578
+ NODE_AUTH_TOKEN: \${{ secrets.NPM_TOKEN }}
579
579
  `;
580
580
  //# sourceMappingURL=ci-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ci-template.js","sourceRoot":"","sources":["../../../src/api/templates/ci-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkkBzB,CAAA"}
1
+ {"version":3,"file":"ci-template.js","sourceRoot":"","sources":["../../../src/api/templates/ci-template.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,cAAuC,EACvC,cAA8B,EAC9B,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkCgB,cAAc;;qBAEd,cAAc;;;;gBAInB,cAAc;gBACd,cAAc;;;;qBAIT,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;qBAGd,cAAc;;;;;;qBAMd,cAAc;;;;;;qBAMd,cAAc;;;;;;qBAMd,cAAc;;uBAEZ,cAAc;qBAChB,cAAc,8BAA8B,cAAc;;;;;;;;;;;;mBAY5D,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAoClB,cAAc;;;;;;;;;;;;;;;yCAeY,cAAc;;;;;;;;yCAQd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA2BrB,cAAc;;;;;;;;;;;;;;;cAelC,cAAc;cACd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmCR,cAAc;;;eAGnB,cAAc;;;;;;;;;;;;;eAad,cAAc;;;;;;;;;;;;;;;;;;;oBAmBT,cAAc;;;eAGnB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAqCjB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA0Cd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA2Cd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyCd,cAAc;;;;;;;;;;;;;iBAaT,cAAc;;;;;;;;;;;;;;;mBAeZ,cAAc;;;eAGlB,cAAc;;;;;;;;;;;;;;eAcd,cAAc;;;;;;;;;;;;;;;;;;;;;;;2BAuBF,cAAc;;;;;;;mBAOtB,cAAc;;eAElB,cAAc;;eAEd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;oBAwBT,cAAc;;;;eAInB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B5B,CAAA"}
@@ -1 +1,3 @@
1
- export declare const createGithubActionsCIYml: (targets: string[]) => string;
1
+ import { type SupportedPackageManager } from '../../utils/index.js';
2
+ import { type WasiTargetName } from './ci-template.js';
3
+ export declare const createGithubActionsCIYml: (targets: string[], packageManager: SupportedPackageManager, wasiTargetName: WasiTargetName) => string;
@@ -8,8 +8,9 @@ const TEST_LINUX_X64_MUSL = 'test-linux-x64-musl-binding';
8
8
  const TEST_LINUX_AARCH64_GNU = 'test-linux-aarch64-gnu-binding';
9
9
  const TEST_LINUX_AARCH64_MUSL = 'test-linux-aarch64-musl-binding';
10
10
  const TEST_LINUX_ARM_GNUEABIHF = 'test-linux-arm-gnueabihf-binding';
11
+ const TEST_WASI = 'test-wasi-nodejs';
11
12
  const UNIVERSAL_MACOS = 'universal-macOS';
12
- export const createGithubActionsCIYml = (targets) => {
13
+ export const createGithubActionsCIYml = (targets, packageManager, wasiTargetName) => {
13
14
  const allTargets = new Set(targets.flatMap((t) => {
14
15
  const platform = parseTriple(t);
15
16
  if (platform.arch === 'universal') {
@@ -18,7 +19,7 @@ export const createGithubActionsCIYml = (targets) => {
18
19
  }
19
20
  return [t];
20
21
  }));
21
- const fullTemplate = load(YAML());
22
+ const fullTemplate = load(YAML(packageManager, wasiTargetName));
22
23
  const requiredSteps = [];
23
24
  const enableWindowsX86 = allTargets.has('x86_64-pc-windows-msvc');
24
25
  const enableMacOSX86 = allTargets.has('x86_64-apple-darwin');
@@ -29,6 +30,9 @@ export const createGithubActionsCIYml = (targets) => {
29
30
  const enableLinuxArm7 = allTargets.has('armv7-unknown-linux-gnueabihf');
30
31
  const enableFreeBSD = allTargets.has('x86_64-unknown-freebsd');
31
32
  const enableMacOSUni = allTargets.has('universal-apple-darwin');
33
+ const enableWasi = allTargets.has('wasm32-wasi-preview1-threads') ||
34
+ allTargets.has('wasm32-wasip1-threads') ||
35
+ allTargets.has('wasm32-wasip2');
32
36
  fullTemplate.jobs.build.strategy.matrix.settings =
33
37
  fullTemplate.jobs.build.strategy.matrix.settings.filter(({ target }) => allTargets.has(target));
34
38
  if (!fullTemplate.jobs.build.strategy.matrix.settings.length) {
@@ -91,9 +95,21 @@ export const createGithubActionsCIYml = (targets) => {
91
95
  else {
92
96
  requiredSteps.push(UNIVERSAL_MACOS);
93
97
  }
98
+ if (!enableWasi) {
99
+ delete fullTemplate.jobs[TEST_WASI];
100
+ }
101
+ else {
102
+ requiredSteps.push(TEST_WASI);
103
+ }
94
104
  fullTemplate.jobs.publish.needs = requiredSteps;
95
- return dump(fullTemplate, {
96
- lineWidth: 1000,
97
- });
105
+ try {
106
+ return dump(fullTemplate, {
107
+ lineWidth: 1000,
108
+ });
109
+ }
110
+ catch (err) {
111
+ console.info(fullTemplate);
112
+ throw err;
113
+ }
98
114
  };
99
115
  //# sourceMappingURL=ci.yml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ci.yml.js","sourceRoot":"","sources":["../../../src/api/templates/ci.yml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci.yml.js","sourceRoot":"","sources":["../../../src/api/templates/ci.yml.ts"],"names":[],"mappings":"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"}