@napi-rs/cli 3.0.0-alpha.5 → 3.0.0-alpha.50

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 (178) hide show
  1. package/dist/api/artifacts.js +32 -8
  2. package/dist/api/artifacts.js.map +1 -0
  3. package/dist/api/build.d.ts +1 -1
  4. package/dist/api/build.js +249 -25
  5. package/dist/api/build.js.map +1 -0
  6. package/dist/api/create-npm-dirs.js +46 -8
  7. package/dist/api/create-npm-dirs.js.map +1 -0
  8. package/dist/api/new.js +58 -20
  9. package/dist/api/new.js.map +1 -0
  10. package/dist/api/pre-publish.js +10 -7
  11. package/dist/api/pre-publish.js.map +1 -0
  12. package/dist/api/rename.js +10 -1
  13. package/dist/api/rename.js.map +1 -0
  14. package/dist/api/templates/.gitignore.d.ts +1 -1
  15. package/dist/api/templates/.gitignore.js +2 -0
  16. package/dist/api/templates/.gitignore.js.map +1 -0
  17. package/dist/api/templates/.npmignore.js +1 -0
  18. package/dist/api/templates/.npmignore.js.map +1 -0
  19. package/dist/api/templates/build.rs.js +1 -0
  20. package/dist/api/templates/build.rs.js.map +1 -0
  21. package/dist/api/templates/cargo.toml.js +1 -0
  22. package/dist/api/templates/cargo.toml.js.map +1 -0
  23. package/dist/api/templates/ci-template.d.ts +3 -1
  24. package/dist/api/templates/ci-template.js +167 -150
  25. package/dist/api/templates/ci-template.js.map +1 -0
  26. package/dist/api/templates/ci.yml.d.ts +3 -1
  27. package/dist/api/templates/ci.yml.js +13 -2
  28. package/dist/api/templates/ci.yml.js.map +1 -0
  29. package/dist/api/templates/index.js +1 -0
  30. package/dist/api/templates/index.js.map +1 -0
  31. package/dist/api/templates/js-binding.js +150 -225
  32. package/dist/api/templates/js-binding.js.map +1 -0
  33. package/dist/api/templates/lib.rs.js +2 -4
  34. package/dist/api/templates/lib.rs.js.map +1 -0
  35. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  36. package/dist/api/templates/load-wasi-template.js +146 -0
  37. package/dist/api/templates/load-wasi-template.js.map +1 -0
  38. package/dist/api/templates/package.json.d.ts +9 -2
  39. package/dist/api/templates/package.json.js +27 -4
  40. package/dist/api/templates/package.json.js.map +1 -0
  41. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  42. package/dist/api/templates/wasi-worker-template.js +103 -0
  43. package/dist/api/templates/wasi-worker-template.js.map +1 -0
  44. package/dist/api/universalize.js +6 -5
  45. package/dist/api/universalize.js.map +1 -0
  46. package/dist/api/version.js +3 -2
  47. package/dist/api/version.js.map +1 -0
  48. package/dist/cli.js +1 -0
  49. package/dist/cli.js.map +1 -0
  50. package/dist/commands/artifacts.js +3 -2
  51. package/dist/commands/artifacts.js.map +1 -0
  52. package/dist/commands/build.js +2 -1
  53. package/dist/commands/build.js.map +1 -0
  54. package/dist/commands/create-npm-dirs.js +1 -0
  55. package/dist/commands/create-npm-dirs.js.map +1 -0
  56. package/dist/commands/help.js +1 -0
  57. package/dist/commands/help.js.map +1 -0
  58. package/dist/commands/new.js +17 -6
  59. package/dist/commands/new.js.map +1 -0
  60. package/dist/commands/pre-publish.js +1 -0
  61. package/dist/commands/pre-publish.js.map +1 -0
  62. package/dist/commands/rename.js +1 -0
  63. package/dist/commands/rename.js.map +1 -0
  64. package/dist/commands/universalize.js +1 -0
  65. package/dist/commands/universalize.js.map +1 -0
  66. package/dist/commands/version.js +1 -0
  67. package/dist/commands/version.js.map +1 -0
  68. package/dist/def/artifacts.d.ts +21 -1
  69. package/dist/def/artifacts.js +11 -2
  70. package/dist/def/artifacts.js.map +1 -0
  71. package/dist/def/build.d.ts +20 -2
  72. package/dist/def/build.js +15 -2
  73. package/dist/def/build.js.map +1 -0
  74. package/dist/def/create-npm-dirs.d.ts +10 -0
  75. package/dist/def/create-npm-dirs.js +5 -0
  76. package/dist/def/create-npm-dirs.js.map +1 -0
  77. package/dist/def/new.d.ts +24 -6
  78. package/dist/def/new.js +12 -1
  79. package/dist/def/new.js.map +1 -0
  80. package/dist/def/pre-publish.d.ts +10 -0
  81. package/dist/def/pre-publish.js +8 -3
  82. package/dist/def/pre-publish.js.map +1 -0
  83. package/dist/def/rename.d.ts +11 -1
  84. package/dist/def/rename.js +6 -1
  85. package/dist/def/rename.js.map +1 -0
  86. package/dist/def/universalize.d.ts +10 -0
  87. package/dist/def/universalize.js +5 -0
  88. package/dist/def/universalize.js.map +1 -0
  89. package/dist/def/version.d.ts +10 -0
  90. package/dist/def/version.js +5 -0
  91. package/dist/def/version.js.map +1 -0
  92. package/dist/index.cjs +3918 -715
  93. package/dist/index.d.ts +1 -0
  94. package/dist/index.js +2 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  97. package/dist/utils/__tests__/config.spec.js +63 -0
  98. package/dist/utils/__tests__/config.spec.js.map +1 -0
  99. package/dist/utils/__tests__/target.spec.js +1 -0
  100. package/dist/utils/__tests__/target.spec.js.map +1 -0
  101. package/dist/utils/__tests__/typegen.spec.js +9 -4
  102. package/dist/utils/__tests__/typegen.spec.js.map +1 -0
  103. package/dist/utils/__tests__/version.spec.js +1 -0
  104. package/dist/utils/__tests__/version.spec.js.map +1 -0
  105. package/dist/utils/cargo.js +2 -1
  106. package/dist/utils/cargo.js.map +1 -0
  107. package/dist/utils/config.d.ts +40 -5
  108. package/dist/utils/config.js +39 -6
  109. package/dist/utils/config.js.map +1 -0
  110. package/dist/utils/index.d.ts +0 -1
  111. package/dist/utils/index.js +1 -1
  112. package/dist/utils/index.js.map +1 -0
  113. package/dist/utils/log.js +1 -0
  114. package/dist/utils/log.js.map +1 -0
  115. package/dist/utils/metadata.js +3 -2
  116. package/dist/utils/metadata.js.map +1 -0
  117. package/dist/utils/misc.d.ts +1 -1
  118. package/dist/utils/misc.js +4 -3
  119. package/dist/utils/misc.js.map +1 -0
  120. package/dist/utils/target.d.ts +9 -5
  121. package/dist/utils/target.js +25 -1
  122. package/dist/utils/target.js.map +1 -0
  123. package/dist/utils/typegen.d.ts +1 -1
  124. package/dist/utils/typegen.js +8 -6
  125. package/dist/utils/typegen.js.map +1 -0
  126. package/dist/utils/version.d.ts +2 -1
  127. package/dist/utils/version.js +11 -8
  128. package/dist/utils/version.js.map +1 -0
  129. package/package.json +46 -13
  130. package/src/api/artifacts.ts +83 -8
  131. package/src/api/build.ts +416 -27
  132. package/src/api/create-npm-dirs.ts +56 -8
  133. package/src/api/new.ts +82 -31
  134. package/src/api/pre-publish.ts +13 -7
  135. package/src/api/rename.ts +10 -1
  136. package/src/api/templates/.gitignore.ts +1 -0
  137. package/src/api/templates/ci-template.ts +176 -150
  138. package/src/api/templates/ci.yml.ts +16 -3
  139. package/src/api/templates/js-binding.ts +150 -225
  140. package/src/api/templates/lib.rs.ts +1 -4
  141. package/src/api/templates/load-wasi-template.ts +157 -0
  142. package/src/api/templates/package.json.ts +47 -5
  143. package/src/api/templates/wasi-worker-template.ts +103 -0
  144. package/src/api/universalize.ts +8 -5
  145. package/src/api/version.ts +5 -2
  146. package/src/commands/artifacts.ts +2 -2
  147. package/src/commands/build.ts +1 -1
  148. package/src/commands/new.ts +16 -6
  149. package/src/def/artifacts.ts +22 -3
  150. package/src/def/build.ts +32 -4
  151. package/src/def/create-npm-dirs.ts +9 -0
  152. package/src/def/new.ts +28 -3
  153. package/src/def/pre-publish.ts +12 -3
  154. package/src/def/rename.ts +11 -2
  155. package/src/def/universalize.ts +9 -0
  156. package/src/def/version.ts +9 -0
  157. package/src/index.ts +2 -0
  158. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  159. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  160. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
  161. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  162. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +555 -0
  163. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  164. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
  165. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  166. package/src/utils/__tests__/config.spec.ts +81 -0
  167. package/src/utils/__tests__/typegen.spec.ts +18 -3
  168. package/src/utils/cargo.ts +1 -1
  169. package/src/utils/config.ts +104 -12
  170. package/src/utils/index.ts +0 -1
  171. package/src/utils/metadata.ts +2 -2
  172. package/src/utils/misc.ts +11 -3
  173. package/src/utils/target.ts +34 -7
  174. package/src/utils/typegen.ts +11 -5
  175. package/src/utils/version.ts +10 -8
  176. package/dist/utils/ci.d.ts +0 -11
  177. package/dist/utils/ci.js +0 -95
  178. package/src/utils/ci.ts +0 -111
@@ -1,10 +1,14 @@
1
- export const YAML = () => `
1
+ export const YAML = (packageManager, wasiTargetName) => `
2
2
  name: CI
3
3
 
4
4
  env:
5
5
  DEBUG: 'napi:*'
6
6
  MACOSX_DEPLOYMENT_TARGET: '10.13'
7
7
 
8
+ permissions:
9
+ contents: write
10
+ id-token: write
11
+
8
12
  on:
9
13
  push:
10
14
  branches:
@@ -28,97 +32,83 @@ jobs:
28
32
  settings:
29
33
  - host: macos-latest
30
34
  target: 'x86_64-apple-darwin'
31
- build: |
32
- yarn build --platform
33
- strip -x *.node
35
+ build: ${packageManager} build --platform
34
36
  - host: windows-latest
35
- build: yarn build --platform
37
+ build: ${packageManager} build --platform
36
38
  target: 'x86_64-pc-windows-msvc'
37
39
  - host: windows-latest
38
40
  build: |
39
- yarn build --platform --target i686-pc-windows-msvc
40
- yarn test
41
+ ${packageManager} build --platform --target i686-pc-windows-msvc
42
+ ${packageManager} test
41
43
  target: 'i686-pc-windows-msvc'
42
44
  - host: ubuntu-latest
43
45
  target: 'x86_64-unknown-linux-gnu'
44
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
45
- build: >-
46
- set -e &&\n
47
- yarn build --platform --target x86_64-unknown-linux-gnu &&\n
48
- strip *.node
46
+ build: ${packageManager} build --platform --target x86_64-unknown-linux-gnu --use-napi-cross
49
47
  - host: ubuntu-latest
50
48
  target: 'x86_64-unknown-linux-musl'
51
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
52
- build: >-
53
- set -e &&
54
- yarn build --platform &&
55
- strip *.node
49
+ build: ${packageManager} build --platform --target x86_64-unknown-linux-musl -x
56
50
  - host: macos-latest
57
51
  target: 'aarch64-apple-darwin'
58
- build: |
59
- yarn build --platform --target aarch64-apple-darwin
60
- strip -x *.node
52
+ build: ${packageManager} build --platform --target aarch64-apple-darwin
61
53
  - host: ubuntu-latest
62
54
  target: 'aarch64-unknown-linux-gnu'
63
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
64
- build: >-
65
- set -e &&\n
66
- yarn build --platform --target aarch64-unknown-linux-gnu &&\n
67
- aarch64-unknown-linux-gnu-strip *.node
55
+ build: ${packageManager} build --platform --target aarch64-unknown-linux-gnu --use-napi-cross
68
56
  - host: ubuntu-latest
69
57
  target: 'armv7-unknown-linux-gnueabihf'
70
- setup: |
71
- sudo apt-get update
72
- sudo apt-get install gcc-arm-linux-gnueabihf -y
73
- build: |
74
- yarn build --platform --target armv7-unknown-linux-gnueabihf --cross-compile
75
- 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
76
62
  - host: ubuntu-latest
77
63
  target: 'aarch64-linux-android'
78
- build: |
79
- yarn build --platform --target aarch64-linux-android
80
- \${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
64
+ build: ${packageManager} build --platform --target aarch64-linux-android
81
65
  - host: ubuntu-latest
82
66
  target: 'armv7-linux-androideabi'
83
- build: |
84
- yarn build --platform --target armv7-linux-androideabi
85
- \${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
67
+ build: ${packageManager} build --platform --target armv7-linux-androideabi
86
68
  - host: ubuntu-latest
87
69
  target: 'aarch64-unknown-linux-musl'
88
- docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
89
- build: >-
90
- set -e &&\n
91
- rustup target add aarch64-unknown-linux-musl &&\n
92
- yarn build --platform --target aarch64-unknown-linux-musl &&\n
93
- /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
70
+ build: ${packageManager} build --platform --target aarch64-unknown-linux-musl -x
94
71
  - host: windows-latest
95
72
  target: 'aarch64-pc-windows-msvc'
96
- build: yarn build --platform --target aarch64-pc-windows-msvc
73
+ build: ${packageManager} build --platform --target aarch64-pc-windows-msvc
97
74
  - host: ubuntu-latest
98
75
  target: 'riscv64gc-unknown-linux-gnu'
99
76
  setup: |
100
77
  sudo apt-get update
101
78
  sudo apt-get install gcc-riscv64-linux-gnu -y
102
- build: |
103
- yarn build --platform --target riscv64gc-unknown-linux-gnu
104
- 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: 'wasm32-wasi-preview1-threads'
94
+ build: ${packageManager} build --platform --target wasm32-wasi-preview1-threads
95
+ target: '${wasiTargetName}'
96
+ build: ${packageManager} build --platform --target ${wasiTargetName}
105
97
 
106
- name: stable - \${{ matrix.settings.target }} - node@18
98
+ name: stable - \${{ matrix.settings.target }} - node@20
107
99
  runs-on: \${{ matrix.settings.host }}
108
100
 
109
101
  steps:
110
- - uses: actions/checkout@v3
102
+ - uses: actions/checkout@v4
111
103
 
112
104
  - name: Setup node
113
- uses: actions/setup-node@v3
114
- if: \${{ !matrix.settings.docker }}
105
+ uses: actions/setup-node@v4
115
106
  with:
116
- node-version: 18
117
- cache: yarn
107
+ node-version: 20
108
+ cache: ${packageManager}
118
109
 
119
110
  - name: Install
120
111
  uses: dtolnay/rust-toolchain@stable
121
- if: \${{ !matrix.settings.docker }}
122
112
  with:
123
113
  toolchain: stable
124
114
  targets: \${{ matrix.settings.target }}
@@ -130,14 +120,15 @@ jobs:
130
120
  ~/.cargo/registry/index/
131
121
  ~/.cargo/registry/cache/
132
122
  ~/.cargo/git/db/
123
+ ~/.napi-rs
133
124
  .cargo-cache
134
125
  target/
135
126
  key: \${{ matrix.settings.target }}-cargo-\${{ matrix.settings.host }}
136
127
 
137
128
  - uses: goto-bus-stop/setup-zig@v2
138
- if: \${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }}
129
+ if: \${{ contains(matrix.settings.target, 'musl') }}
139
130
  with:
140
- version: 0.10.1
131
+ version: 0.11.0
141
132
 
142
133
  - name: Setup toolchain
143
134
  run: \${{ matrix.settings.setup }}
@@ -150,80 +141,80 @@ jobs:
150
141
  shell: bash
151
142
 
152
143
  - name: 'Install dependencies'
153
- run: yarn install
144
+ run: ${packageManager} install
154
145
 
155
146
  - name: Setup node x86
156
- uses: actions/setup-node@v3
147
+ uses: actions/setup-node@v4
157
148
  if: matrix.settings.target == 'i686-pc-windows-msvc'
158
149
  with:
159
- node-version: 18
160
- cache: yarn
150
+ node-version: 20
161
151
  architecture: x86
162
152
 
163
- - name: Build in docker
164
- uses: addnab/docker-run-action@v3
165
- if: \${{ matrix.settings.docker }}
166
- with:
167
- image: \${{ matrix.settings.docker }}
168
- 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
169
- run: \${{ matrix.settings.build }}
170
-
171
153
  - name: 'Build'
172
154
  run: \${{ matrix.settings.build }}
173
- if: \${{ !matrix.settings.docker }}
174
155
  shell: bash
175
156
 
176
157
  - name: Upload artifact
177
- uses: actions/upload-artifact@v3
158
+ uses: actions/upload-artifact@v4
159
+ if: matrix.settings.target != '${wasiTargetName}'
178
160
  with:
179
161
  name: bindings-\${{ matrix.settings.target }}
180
162
  path: "*.node"
181
163
  if-no-files-found: error
182
164
 
165
+ - name: Upload artifact
166
+ uses: actions/upload-artifact@v4
167
+ if: matrix.settings.target == '${wasiTargetName}'
168
+ with:
169
+ name: bindings-\${{ matrix.settings.target }}
170
+ path: "*.wasm"
171
+ if-no-files-found: error
172
+
183
173
  build-freebsd:
184
174
  runs-on: macos-12
185
175
  name: Build FreeBSD
186
176
  steps:
187
- - uses: actions/checkout@v3
177
+ - uses: actions/checkout@v4
188
178
  - name: Build
189
179
  id: build
190
- uses: vmactions/freebsd-vm@v0
180
+ uses: cross-platform-actions/action@v0.23.0
181
+ timeout-minutes: 30
191
182
  env:
192
183
  DEBUG: 'napi:*'
193
- RUSTUP_HOME: /usr/local/rustup
194
- CARGO_HOME: /usr/local/cargo
195
184
  RUSTUP_IO_THREADS: 1
196
185
  with:
197
- envs: 'DEBUG RUSTUP_HOME CARGO_HOME RUSTUP_IO_THREADS'
198
- usesh: true
199
- mem: 3000
200
- prepare: |
201
- pkg install -y -f curl node libnghttp2 npm yarn
186
+ operating_system: freebsd
187
+ version: '13.2'
188
+ memory: 8G
189
+ cpu_count: 3
190
+ environment_variables: 'DEBUG RUSTUP_IO_THREADS'
191
+ shell: bash
192
+ run: |
193
+ sudo pkg install -y -f curl node libnghttp2 npm
194
+ sudo npm install -g ${packageManager} --ignore-scripts
202
195
  curl https://sh.rustup.rs -sSf --output rustup.sh
203
- sh rustup.sh -y --profile minimal --default-toolchain beta
204
- export PATH="/usr/local/cargo/bin:$PATH"
196
+ sh rustup.sh -y --profile minimal --default-toolchain stable
197
+ source "$HOME/.cargo/env"
205
198
  echo "~~~~ rustc --version ~~~~"
206
199
  rustc --version
207
200
  echo "~~~~ node -v ~~~~"
208
201
  node -v
209
202
  echo "~~~~ yarn --version ~~~~"
210
203
  yarn --version
211
- run: |
212
- export PATH="/usr/local/cargo/bin:$PATH"
213
204
  pwd
214
205
  ls -lah
215
206
  whoami
216
207
  env
217
208
  freebsd-version
218
- yarn install
219
- yarn build
209
+ ${packageManager} install
210
+ ${packageManager} build
220
211
  strip -x *.node
221
212
  yarn test
222
213
  rm -rf node_modules
223
214
  rm -rf target
224
215
  rm -rf .yarn/cache
225
216
  - name: Upload artifact
226
- uses: actions/upload-artifact@v3
217
+ uses: actions/upload-artifact@v4
227
218
  with:
228
219
  name: bindings-freebsd
229
220
  path: "*.node"
@@ -241,23 +232,23 @@ jobs:
241
232
  target: 'x86_64-apple-darwin'
242
233
  - host: windows-latest
243
234
  target: 'x86_64-pc-windows-msvc'
244
- node: ['16', '18']
235
+ node: ['18', '20']
245
236
  runs-on: \${{ matrix.settings.host }}
246
237
 
247
238
  steps:
248
- - uses: actions/checkout@v3
239
+ - uses: actions/checkout@v4
249
240
 
250
241
  - name: Setup node
251
- uses: actions/setup-node@v3
242
+ uses: actions/setup-node@v4
252
243
  with:
253
244
  node-version: \${{ matrix.node }}
254
- cache: 'yarn'
245
+ cache: '${packageManager}'
255
246
 
256
247
  - name: 'Install dependencies'
257
- run: yarn install
248
+ run: ${packageManager} install
258
249
 
259
250
  - name: Download artifacts
260
- uses: actions/download-artifact@v3
251
+ uses: actions/download-artifact@v4
261
252
  with:
262
253
  name: bindings-\${{ matrix.settings.target }}
263
254
  path: .
@@ -267,7 +258,7 @@ jobs:
267
258
  shell: bash
268
259
 
269
260
  - name: Test bindings
270
- run: yarn test
261
+ run: ${packageManager} test
271
262
 
272
263
  test-linux-x64-gnu-binding:
273
264
  name: Test bindings on Linux-x64-gnu - node@\${{ matrix.node }}
@@ -276,23 +267,23 @@ jobs:
276
267
  strategy:
277
268
  fail-fast: false
278
269
  matrix:
279
- node: ['16', '18']
270
+ node: ['18', '20']
280
271
  runs-on: ubuntu-latest
281
272
 
282
273
  steps:
283
- - uses: actions/checkout@v3
274
+ - uses: actions/checkout@v4
284
275
 
285
276
  - name: Setup node
286
- uses: actions/setup-node@v3
277
+ uses: actions/setup-node@v4
287
278
  with:
288
279
  node-version: \${{ matrix.node }}
289
- cache: 'yarn'
280
+ cache: '${packageManager}'
290
281
 
291
282
  - name: 'Install dependencies'
292
- run: yarn install
283
+ run: ${packageManager} install
293
284
 
294
285
  - name: Download artifacts
295
- uses: actions/download-artifact@v3
286
+ uses: actions/download-artifact@v4
296
287
  with:
297
288
  name: bindings-x86_64-unknown-linux-gnu
298
289
  path: .
@@ -311,14 +302,14 @@ jobs:
311
302
  strategy:
312
303
  fail-fast: false
313
304
  matrix:
314
- node: ['16', '18']
305
+ node: ['18', '20']
315
306
  runs-on: ubuntu-latest
316
307
 
317
308
  steps:
318
- - uses: actions/checkout@v3
309
+ - uses: actions/checkout@v4
319
310
 
320
311
  - name: Setup node
321
- uses: actions/setup-node@v3
312
+ uses: actions/setup-node@v4
322
313
  with:
323
314
  node-version: \${{ matrix.node }}
324
315
  cache: 'yarn'
@@ -326,10 +317,10 @@ jobs:
326
317
  - name: 'Install dependencies'
327
318
  run: |
328
319
  yarn config set supportedArchitectures.libc "musl"
329
- yarn install
320
+ ${packageManager} install
330
321
 
331
322
  - name: Download artifacts
332
- uses: actions/download-artifact@v3
323
+ uses: actions/download-artifact@v4
333
324
  with:
334
325
  name: bindings-x86_64-unknown-linux-musl
335
326
  path: .
@@ -348,14 +339,14 @@ jobs:
348
339
  strategy:
349
340
  fail-fast: false
350
341
  matrix:
351
- node: ['16', '18']
342
+ node: ['20']
352
343
  runs-on: ubuntu-latest
353
344
 
354
345
  steps:
355
- - uses: actions/checkout@v3
346
+ - uses: actions/checkout@v4
356
347
 
357
348
  - name: Download artifacts
358
- uses: actions/download-artifact@v3
349
+ uses: actions/download-artifact@v4
359
350
  with:
360
351
  name: bindings-aarch64-unknown-linux-gnu
361
352
  path: .
@@ -368,10 +359,10 @@ jobs:
368
359
  run: |
369
360
  yarn config set supportedArchitectures.cpu "arm64"
370
361
  yarn config set supportedArchitectures.libc "glibc"
371
- yarn install
362
+ ${packageManager} install
372
363
 
373
364
  - name: Set up QEMU
374
- uses: docker/setup-qemu-action@v2
365
+ uses: docker/setup-qemu-action@v3
375
366
  with:
376
367
  platforms: arm64
377
368
  - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
@@ -381,23 +372,24 @@ jobs:
381
372
  with:
382
373
  image: node:\${{ matrix.node }}-slim
383
374
  options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
384
- run: |
385
- set -e
386
- yarn test
387
- ls -la
375
+ run: yarn test
388
376
 
389
377
  test-linux-aarch64-musl-binding:
390
378
  name: Test bindings on aarch64-unknown-linux-musl - node@\${{ matrix.node }}
391
379
  needs:
392
380
  - build
381
+ strategy:
382
+ fail-fast: false
383
+ matrix:
384
+ node: ['18', '20']
393
385
 
394
386
  runs-on: ubuntu-latest
395
387
 
396
388
  steps:
397
- - uses: actions/checkout@v3
389
+ - uses: actions/checkout@v4
398
390
 
399
391
  - name: Download artifacts
400
- uses: actions/download-artifact@v3
392
+ uses: actions/download-artifact@v4
401
393
  with:
402
394
  name: bindings-aarch64-unknown-linux-musl
403
395
  path: .
@@ -410,10 +402,10 @@ jobs:
410
402
  run: |
411
403
  yarn config set supportedArchitectures.cpu "arm64"
412
404
  yarn config set supportedArchitectures.libc "musl"
413
- yarn install
405
+ ${packageManager} install
414
406
 
415
407
  - name: Set up QEMU
416
- uses: docker/setup-qemu-action@v2
408
+ uses: docker/setup-qemu-action@v3
417
409
  with:
418
410
  platforms: arm64
419
411
  - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
@@ -421,11 +413,9 @@ jobs:
421
413
  - name: Setup and run tests
422
414
  uses: addnab/docker-run-action@v3
423
415
  with:
424
- image: node:lts-alpine
416
+ image: node:\${{ matrix.node }}-alpine
425
417
  options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
426
- run: |
427
- set -e
428
- yarn test
418
+ run: yarn test
429
419
 
430
420
  test-linux-arm-gnueabihf-binding:
431
421
  name: Test bindings on armv7-unknown-linux-gnueabihf - node@\${{ matrix.node }}
@@ -434,14 +424,14 @@ jobs:
434
424
  strategy:
435
425
  fail-fast: false
436
426
  matrix:
437
- node: ['16', '18']
427
+ node: ['18', '20']
438
428
  runs-on: ubuntu-latest
439
429
 
440
430
  steps:
441
- - uses: actions/checkout@v3
431
+ - uses: actions/checkout@v4
442
432
 
443
433
  - name: Download artifacts
444
- uses: actions/download-artifact@v3
434
+ uses: actions/download-artifact@v4
445
435
  with:
446
436
  name: bindings-armv7-unknown-linux-gnueabihf
447
437
  path: .
@@ -453,10 +443,10 @@ jobs:
453
443
  - name: Install dependencies
454
444
  run: |
455
445
  yarn config set supportedArchitectures.cpu "arm"
456
- yarn install
446
+ ${packageManager} install
457
447
 
458
448
  - name: Set up QEMU
459
- uses: docker/setup-qemu-action@v2
449
+ uses: docker/setup-qemu-action@v3
460
450
  with:
461
451
  platforms: arm
462
452
  - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
@@ -466,10 +456,7 @@ jobs:
466
456
  with:
467
457
  image: node:\${{ matrix.node }}-bullseye-slim
468
458
  options: --platform linux/arm/v7 -v \${{ github.workspace }}:/build -w /build
469
- run: |
470
- set -e
471
- yarn test
472
- ls -la
459
+ run: ${packageManager} test
473
460
 
474
461
  universal-macOS:
475
462
  name: Build universal macOS binary
@@ -478,38 +465,67 @@ jobs:
478
465
  runs-on: macos-latest
479
466
 
480
467
  steps:
481
- - uses: actions/checkout@v3
468
+ - uses: actions/checkout@v4
482
469
 
483
470
  - name: Setup node
484
- uses: actions/setup-node@v3
471
+ uses: actions/setup-node@v4
485
472
  with:
486
- node-version: 18
487
- cache: yarn
473
+ node-version: 20
474
+ cache: ${packageManager}
488
475
 
489
476
  - name: 'Install dependencies'
490
- run: yarn install
477
+ run: ${packageManager} install
491
478
 
492
479
  - name: Download macOS x64 artifact
493
- uses: actions/download-artifact@v3
480
+ uses: actions/download-artifact@v4
494
481
  with:
495
482
  name: bindings-x86_64-apple-darwin
496
483
  path: .
497
484
  - name: Download macOS arm64 artifact
498
- uses: actions/download-artifact@v3
485
+ uses: actions/download-artifact@v4
499
486
  with:
500
487
  name: bindings-aarch64-apple-darwin
501
488
  path: .
502
489
 
503
490
  - name: Combine binaries
504
- run: yarn napi universalize
491
+ run: ${packageManager} napi universalize
505
492
 
506
493
  - name: Upload artifact
507
- uses: actions/upload-artifact@v3
494
+ uses: actions/upload-artifact@v4
508
495
  with:
509
496
  name: bindings-universal-apple-darwin
510
497
  path: "*.node"
511
498
  if-no-files-found: error
512
499
 
500
+ test-wasi-nodejs:
501
+ name: Test bindings on wasi - node@\${{ matrix.node }}
502
+ needs:
503
+ - build
504
+ strategy:
505
+ fail-fast: false
506
+ matrix:
507
+ node: ['18', '20']
508
+ runs-on: ubuntu-latest
509
+ steps:
510
+ - uses: actions/checkout@v4
511
+ - name: Download artifacts
512
+ uses: actions/download-artifact@v4
513
+ with:
514
+ name: bindings-${wasiTargetName}
515
+ path: .
516
+ - name: List packages
517
+ run: ls -R .
518
+ - uses: actions/setup-node@v4
519
+ with:
520
+ node-version: \${{ matrix.node }}
521
+ cache: ${packageManager}
522
+ - name: 'Install dependencies'
523
+ run: ${packageManager} install
524
+ - name: Test
525
+ run: ${packageManager} test
526
+ env:
527
+ NAPI_RS_FORCE_WASI: true
528
+
513
529
  publish:
514
530
  name: Publish
515
531
  runs-on: ubuntu-latest
@@ -520,22 +536,24 @@ jobs:
520
536
  - test-linux-arm-gnueabihf-binding
521
537
  - test-macOS-windows-binding
522
538
  - test-linux-aarch64-musl-binding
539
+ - test-wasi-nodejs
523
540
  - build-freebsd
524
541
 
525
542
  steps:
526
- - uses: actions/checkout@v3
543
+ - uses: actions/checkout@v4
527
544
 
528
545
  - name: Setup node
529
- uses: actions/setup-node@v3
546
+ uses: actions/setup-node@v4
530
547
  with:
531
- node-version: 18
532
- cache: 'yarn'
548
+ node-version: 20
549
+ cache: '${packageManager}'
550
+ registry-url: 'https://registry.npmjs.org'
533
551
 
534
552
  - name: 'Install dependencies'
535
- run: yarn install
553
+ run: ${packageManager} install
536
554
 
537
555
  - name: Download all artifacts
538
- uses: actions/download-artifact@v3
556
+ uses: actions/download-artifact@v4
539
557
  with:
540
558
  path: artifacts
541
559
 
@@ -550,16 +568,15 @@ jobs:
550
568
  run: |
551
569
  if git log -1 --pretty=%B | grep "^[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+$";
552
570
  then
553
- echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
554
- npm publish --access public
571
+ npm publish --access public --provenance
555
572
  elif git log -1 --pretty=%B | grep "^[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+";
556
573
  then
557
- echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
558
- npm publish --tag next --access public
574
+ npm publish --tag next --access public --provenance
559
575
  else
560
576
  echo "Not a release, skipping publish"
561
577
  fi
562
578
  env:
563
579
  GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
564
- NPM_TOKEN: \${{ secrets.NPM_TOKEN }}
580
+ NODE_AUTH_TOKEN: \${{ secrets.NPM_TOKEN }}
565
581
  `;
582
+ //# sourceMappingURL=ci-template.js.map
@@ -0,0 +1 @@
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,cAA+B,EAC/B,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;;;qBAGd,cAAc;uBACZ,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: (binaryName: string, 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;