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

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