@napi-rs/cli 3.0.0-alpha.9 → 3.0.0-alpha.91

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 (185) hide show
  1. package/cli.mjs +1 -1
  2. package/dist/api/__tests__/new.spec.d.ts +1 -0
  3. package/dist/api/build.d.ts +1 -1
  4. package/dist/api/templates/ci-template.d.ts +3 -1
  5. package/dist/api/templates/ci.yml.d.ts +3 -1
  6. package/dist/api/templates/js-binding.d.ts +1 -0
  7. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  8. package/dist/api/templates/package.json.d.ts +9 -2
  9. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  10. package/dist/cli.js +3867 -15
  11. package/dist/def/artifacts.d.ts +21 -1
  12. package/dist/def/build.d.ts +149 -4
  13. package/dist/def/create-npm-dirs.d.ts +10 -0
  14. package/dist/def/new.d.ts +25 -7
  15. package/dist/def/pre-publish.d.ts +12 -2
  16. package/dist/def/rename.d.ts +16 -6
  17. package/dist/def/universalize.d.ts +10 -0
  18. package/dist/def/version.d.ts +10 -0
  19. package/dist/index.cjs +9946 -15669
  20. package/dist/index.js +3618 -32
  21. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  22. package/dist/utils/config.d.ts +48 -4
  23. package/dist/utils/index.d.ts +1 -1
  24. package/dist/utils/metadata.d.ts +13 -1
  25. package/dist/utils/misc.d.ts +3 -3
  26. package/dist/utils/read-config.d.ts +7 -0
  27. package/dist/utils/target.d.ts +7 -5
  28. package/dist/utils/typegen.d.ts +1 -1
  29. package/dist/utils/version.d.ts +2 -1
  30. package/package.json +38 -34
  31. package/src/api/__tests__/new.spec.ts +429 -0
  32. package/src/api/artifacts.ts +81 -9
  33. package/src/api/build.ts +498 -149
  34. package/src/api/create-npm-dirs.ts +57 -9
  35. package/src/api/new.ts +389 -122
  36. package/src/api/pre-publish.ts +13 -7
  37. package/src/api/rename.ts +103 -17
  38. package/src/api/templates/cargo.toml.ts +1 -0
  39. package/src/api/templates/ci-template.ts +150 -125
  40. package/src/api/templates/ci.yml.ts +27 -6
  41. package/src/api/templates/js-binding.ts +148 -220
  42. package/src/api/templates/load-wasi-template.ts +182 -0
  43. package/src/api/templates/package.json.ts +47 -5
  44. package/src/api/templates/wasi-worker-template.ts +122 -0
  45. package/src/api/universalize.ts +13 -8
  46. package/src/api/version.ts +5 -2
  47. package/src/commands/artifacts.ts +2 -2
  48. package/src/commands/build.ts +1 -1
  49. package/src/commands/new.ts +46 -45
  50. package/src/def/artifacts.ts +22 -3
  51. package/src/def/build.ts +55 -8
  52. package/src/def/create-npm-dirs.ts +9 -0
  53. package/src/def/new.ts +28 -3
  54. package/src/def/pre-publish.ts +12 -3
  55. package/src/def/rename.ts +11 -2
  56. package/src/def/universalize.ts +9 -0
  57. package/src/def/version.ts +9 -0
  58. package/src/utils/__tests__/__fixtures__/napi_type_def +130 -130
  59. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  60. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  61. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
  62. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  63. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +316 -332
  64. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  65. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
  66. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  67. package/src/utils/__tests__/config.spec.ts +81 -0
  68. package/src/utils/cargo.ts +2 -2
  69. package/src/utils/config.ts +110 -9
  70. package/src/utils/index.ts +1 -1
  71. package/src/utils/log.ts +1 -1
  72. package/src/utils/metadata.ts +52 -14
  73. package/src/utils/misc.ts +21 -12
  74. package/src/utils/read-config.ts +20 -0
  75. package/src/utils/target.ts +22 -4
  76. package/src/utils/typegen.ts +87 -52
  77. package/src/utils/version.ts +10 -8
  78. package/dist/api/artifacts.js +0 -53
  79. package/dist/api/artifacts.js.map +0 -1
  80. package/dist/api/build.js +0 -498
  81. package/dist/api/build.js.map +0 -1
  82. package/dist/api/create-npm-dirs.js +0 -64
  83. package/dist/api/create-npm-dirs.js.map +0 -1
  84. package/dist/api/load-wasi-template.d.ts +0 -1
  85. package/dist/api/load-wasi-template.js +0 -64
  86. package/dist/api/load-wasi-template.js.map +0 -1
  87. package/dist/api/new.js +0 -155
  88. package/dist/api/new.js.map +0 -1
  89. package/dist/api/pre-publish.js +0 -158
  90. package/dist/api/pre-publish.js.map +0 -1
  91. package/dist/api/rename.js +0 -29
  92. package/dist/api/rename.js.map +0 -1
  93. package/dist/api/templates/.gitignore.js +0 -200
  94. package/dist/api/templates/.gitignore.js.map +0 -1
  95. package/dist/api/templates/.npmignore.js +0 -15
  96. package/dist/api/templates/.npmignore.js.map +0 -1
  97. package/dist/api/templates/build.rs.js +0 -5
  98. package/dist/api/templates/build.rs.js.map +0 -1
  99. package/dist/api/templates/cargo.toml.js +0 -26
  100. package/dist/api/templates/cargo.toml.js.map +0 -1
  101. package/dist/api/templates/ci-template.js +0 -578
  102. package/dist/api/templates/ci-template.js.map +0 -1
  103. package/dist/api/templates/ci.yml.js +0 -99
  104. package/dist/api/templates/ci.yml.js.map +0 -1
  105. package/dist/api/templates/index.js +0 -9
  106. package/dist/api/templates/index.js.map +0 -1
  107. package/dist/api/templates/js-binding.js +0 -293
  108. package/dist/api/templates/js-binding.js.map +0 -1
  109. package/dist/api/templates/lib.rs.js +0 -8
  110. package/dist/api/templates/lib.rs.js.map +0 -1
  111. package/dist/api/templates/package.json.js +0 -32
  112. package/dist/api/templates/package.json.js.map +0 -1
  113. package/dist/api/universalize.js +0 -39
  114. package/dist/api/universalize.js.map +0 -1
  115. package/dist/api/version.js +0 -17
  116. package/dist/api/version.js.map +0 -1
  117. package/dist/api/wasi-worker-template.d.ts +0 -1
  118. package/dist/api/wasi-worker-template.js +0 -53
  119. package/dist/api/wasi-worker-template.js.map +0 -1
  120. package/dist/cli.js.map +0 -1
  121. package/dist/commands/artifacts.js +0 -20
  122. package/dist/commands/artifacts.js.map +0 -1
  123. package/dist/commands/build.js +0 -35
  124. package/dist/commands/build.js.map +0 -1
  125. package/dist/commands/create-npm-dirs.js +0 -8
  126. package/dist/commands/create-npm-dirs.js.map +0 -1
  127. package/dist/commands/help.js +0 -13
  128. package/dist/commands/help.js.map +0 -1
  129. package/dist/commands/new.js +0 -110
  130. package/dist/commands/new.js.map +0 -1
  131. package/dist/commands/pre-publish.js +0 -9
  132. package/dist/commands/pre-publish.js.map +0 -1
  133. package/dist/commands/rename.js +0 -8
  134. package/dist/commands/rename.js.map +0 -1
  135. package/dist/commands/universalize.js +0 -8
  136. package/dist/commands/universalize.js.map +0 -1
  137. package/dist/commands/version.js +0 -8
  138. package/dist/commands/version.js.map +0 -1
  139. package/dist/def/artifacts.js +0 -39
  140. package/dist/def/artifacts.js.map +0 -1
  141. package/dist/def/build.js +0 -118
  142. package/dist/def/build.js.map +0 -1
  143. package/dist/def/create-npm-dirs.js +0 -39
  144. package/dist/def/create-npm-dirs.js.map +0 -1
  145. package/dist/def/new.js +0 -67
  146. package/dist/def/new.js.map +0 -1
  147. package/dist/def/pre-publish.js +0 -57
  148. package/dist/def/pre-publish.js.map +0 -1
  149. package/dist/def/rename.js +0 -59
  150. package/dist/def/rename.js.map +0 -1
  151. package/dist/def/universalize.js +0 -34
  152. package/dist/def/universalize.js.map +0 -1
  153. package/dist/def/version.js +0 -34
  154. package/dist/def/version.js.map +0 -1
  155. package/dist/index.js.map +0 -1
  156. package/dist/utils/__tests__/target.spec.js +0 -11
  157. package/dist/utils/__tests__/target.spec.js.map +0 -1
  158. package/dist/utils/__tests__/typegen.spec.js +0 -42
  159. package/dist/utils/__tests__/typegen.spec.js.map +0 -1
  160. package/dist/utils/__tests__/version.spec.js +0 -6
  161. package/dist/utils/__tests__/version.spec.js.map +0 -1
  162. package/dist/utils/cargo.js +0 -34
  163. package/dist/utils/cargo.js.map +0 -1
  164. package/dist/utils/ci.d.ts +0 -11
  165. package/dist/utils/ci.js +0 -96
  166. package/dist/utils/ci.js.map +0 -1
  167. package/dist/utils/config.js +0 -43
  168. package/dist/utils/config.js.map +0 -1
  169. package/dist/utils/index.js +0 -10
  170. package/dist/utils/index.js.map +0 -1
  171. package/dist/utils/log.js +0 -15
  172. package/dist/utils/log.js.map +0 -1
  173. package/dist/utils/metadata.js +0 -20
  174. package/dist/utils/metadata.js.map +0 -1
  175. package/dist/utils/misc.js +0 -41
  176. package/dist/utils/misc.js.map +0 -1
  177. package/dist/utils/target.js +0 -121
  178. package/dist/utils/target.js.map +0 -1
  179. package/dist/utils/typegen.js +0 -179
  180. package/dist/utils/typegen.js.map +0 -1
  181. package/dist/utils/version.js +0 -60
  182. package/dist/utils/version.js.map +0 -1
  183. package/src/api/load-wasi-template.ts +0 -66
  184. package/src/api/wasi-worker-template.ts +0 -52
  185. package/src/utils/ci.ts +0 -111
@@ -1,578 +0,0 @@
1
- export const YAML = () => `
2
- name: CI
3
-
4
- env:
5
- DEBUG: 'napi:*'
6
- MACOSX_DEPLOYMENT_TARGET: '10.13'
7
-
8
- permissions:
9
- contents: write
10
- id-token: write
11
-
12
- on:
13
- push:
14
- branches:
15
- - main
16
- tags-ignore:
17
- - '**'
18
- paths-ignore:
19
- - '**/*.md'
20
- - 'LICENSE'
21
- - '**/*.gitignore'
22
- - '.editorconfig'
23
- - 'docs/**'
24
- pull_request:
25
-
26
- jobs:
27
- build:
28
-
29
- strategy:
30
- fail-fast: false
31
- matrix:
32
- settings:
33
- - host: macos-latest
34
- target: 'x86_64-apple-darwin'
35
- build: |
36
- yarn build --platform
37
- strip -x *.node
38
- - host: windows-latest
39
- build: yarn build --platform
40
- target: 'x86_64-pc-windows-msvc'
41
- - host: windows-latest
42
- build: |
43
- yarn build --platform --target i686-pc-windows-msvc
44
- yarn test
45
- target: 'i686-pc-windows-msvc'
46
- - host: ubuntu-latest
47
- 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
53
- - host: ubuntu-latest
54
- 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
60
- - host: macos-latest
61
- target: 'aarch64-apple-darwin'
62
- build: |
63
- yarn build --platform --target aarch64-apple-darwin
64
- strip -x *.node
65
- - host: ubuntu-latest
66
- 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
72
- - host: ubuntu-latest
73
- 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
80
- - host: ubuntu-latest
81
- 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
85
- - host: ubuntu-latest
86
- 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
90
- - host: ubuntu-latest
91
- 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
98
- - host: windows-latest
99
- target: 'aarch64-pc-windows-msvc'
100
- build: yarn build --platform --target aarch64-pc-windows-msvc
101
- - host: ubuntu-latest
102
- target: 'riscv64gc-unknown-linux-gnu'
103
- setup: |
104
- sudo apt-get update
105
- 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
109
-
110
- name: stable - \${{ matrix.settings.target }} - node@18
111
- runs-on: \${{ matrix.settings.host }}
112
-
113
- steps:
114
- - uses: actions/checkout@v4
115
-
116
- - name: Setup node
117
- uses: actions/setup-node@v4
118
- if: \${{ !matrix.settings.docker }}
119
- with:
120
- node-version: 18
121
- cache: yarn
122
-
123
- - name: Install
124
- uses: dtolnay/rust-toolchain@stable
125
- if: \${{ !matrix.settings.docker }}
126
- with:
127
- toolchain: stable
128
- targets: \${{ matrix.settings.target }}
129
-
130
- - name: Cache cargo
131
- uses: actions/cache@v3
132
- with:
133
- path: |
134
- ~/.cargo/registry/index/
135
- ~/.cargo/registry/cache/
136
- ~/.cargo/git/db/
137
- .cargo-cache
138
- target/
139
- key: \${{ matrix.settings.target }}-cargo-\${{ matrix.settings.host }}
140
-
141
- - uses: goto-bus-stop/setup-zig@v2
142
- if: \${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }}
143
- with:
144
- version: 0.11.0
145
-
146
- - name: Setup toolchain
147
- run: \${{ matrix.settings.setup }}
148
- if: \${{ matrix.settings.setup }}
149
- shell: bash
150
-
151
- - name: Setup node x86
152
- if: matrix.settings.target == 'i686-pc-windows-msvc'
153
- run: yarn config set supportedArchitectures.cpu "ia32"
154
- shell: bash
155
-
156
- - name: 'Install dependencies'
157
- run: yarn install
158
-
159
- - name: Setup node x86
160
- uses: actions/setup-node@v4
161
- if: matrix.settings.target == 'i686-pc-windows-msvc'
162
- with:
163
- node-version: 18
164
- cache: yarn
165
- architecture: x86
166
-
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
- - name: 'Build'
176
- run: \${{ matrix.settings.build }}
177
- if: \${{ !matrix.settings.docker }}
178
- shell: bash
179
-
180
- - name: Upload artifact
181
- uses: actions/upload-artifact@v3
182
- with:
183
- name: bindings-\${{ matrix.settings.target }}
184
- path: "*.node"
185
- if-no-files-found: error
186
-
187
- build-freebsd:
188
- runs-on: macos-12
189
- name: Build FreeBSD
190
- steps:
191
- - uses: actions/checkout@v4
192
- - name: Build
193
- id: build
194
- uses: cross-platform-actions/action@v0.21.0
195
- env:
196
- DEBUG: 'napi:*'
197
- RUSTUP_IO_THREADS: 1
198
- with:
199
- operating_system: freebsd
200
- version: '13.2'
201
- memory: 13G
202
- cpu_count: 3
203
- environment_variables: 'DEBUG RUSTUP_IO_THREADS'
204
- shell: bash
205
- prepare: |
206
- sudo pkg install -y -f curl node libnghttp2 npm
207
- sudo npm install -g yarn --ignore-scripts
208
- curl https://sh.rustup.rs -sSf --output rustup.sh
209
- sh rustup.sh -y --profile minimal --default-toolchain stable
210
- source "$HOME/.cargo/env"
211
- echo "~~~~ rustc --version ~~~~"
212
- rustc --version
213
- echo "~~~~ node -v ~~~~"
214
- node -v
215
- echo "~~~~ yarn --version ~~~~"
216
- yarn --version
217
- pwd
218
- ls -lah
219
- whoami
220
- env
221
- freebsd-version
222
- yarn install
223
- yarn build
224
- strip -x *.node
225
- yarn test
226
- rm -rf node_modules
227
- rm -rf target
228
- rm -rf .yarn/cache
229
- - name: Upload artifact
230
- uses: actions/upload-artifact@v3
231
- with:
232
- name: bindings-freebsd
233
- path: "*.node"
234
- if-no-files-found: error
235
-
236
- test-macOS-windows-binding:
237
- name: Test bindings on \${{ matrix.settings.target }} - node@\${{ matrix.node }}
238
- needs:
239
- - build
240
- strategy:
241
- fail-fast: false
242
- matrix:
243
- settings:
244
- - host: macos-latest
245
- target: 'x86_64-apple-darwin'
246
- - host: windows-latest
247
- target: 'x86_64-pc-windows-msvc'
248
- node: ['16', '18']
249
- node: ['18', '20']
250
- runs-on: \${{ matrix.settings.host }}
251
-
252
- steps:
253
- - uses: actions/checkout@v4
254
-
255
- - name: Setup node
256
- uses: actions/setup-node@v4
257
- with:
258
- node-version: \${{ matrix.node }}
259
- cache: 'yarn'
260
-
261
- - name: 'Install dependencies'
262
- run: yarn install
263
-
264
- - name: Download artifacts
265
- uses: actions/download-artifact@v3
266
- with:
267
- name: bindings-\${{ matrix.settings.target }}
268
- path: .
269
-
270
- - name: List packages
271
- run: ls -R .
272
- shell: bash
273
-
274
- - name: Test bindings
275
- run: yarn test
276
-
277
- test-linux-x64-gnu-binding:
278
- name: Test bindings on Linux-x64-gnu - node@\${{ matrix.node }}
279
- needs:
280
- - build
281
- strategy:
282
- fail-fast: false
283
- matrix:
284
- node: ['16', '18']
285
- node: ['18', '20']
286
- runs-on: ubuntu-latest
287
-
288
- steps:
289
- - uses: actions/checkout@v4
290
-
291
- - name: Setup node
292
- uses: actions/setup-node@v4
293
- with:
294
- node-version: \${{ matrix.node }}
295
- cache: 'yarn'
296
-
297
- - name: 'Install dependencies'
298
- run: yarn install
299
-
300
- - name: Download artifacts
301
- uses: actions/download-artifact@v3
302
- with:
303
- name: bindings-x86_64-unknown-linux-gnu
304
- path: .
305
-
306
- - name: List packages
307
- run: ls -R .
308
- shell: bash
309
-
310
- - name: Test bindings
311
- run: docker run --rm -v $(pwd):/build -w /build node:\${{ matrix.node }}-slim yarn test
312
-
313
- test-linux-x64-musl-binding:
314
- name: Test bindings on x86_64-unknown-linux-musl - node@\${{ matrix.node }}
315
- needs:
316
- - build
317
- strategy:
318
- fail-fast: false
319
- matrix:
320
- node: ['16', '18']
321
- node: ['18', '20']
322
- runs-on: ubuntu-latest
323
-
324
- steps:
325
- - uses: actions/checkout@v4
326
-
327
- - name: Setup node
328
- uses: actions/setup-node@v4
329
- with:
330
- node-version: \${{ matrix.node }}
331
- cache: 'yarn'
332
-
333
- - name: 'Install dependencies'
334
- run: |
335
- yarn config set supportedArchitectures.libc "musl"
336
- yarn install
337
-
338
- - name: Download artifacts
339
- uses: actions/download-artifact@v3
340
- with:
341
- name: bindings-x86_64-unknown-linux-musl
342
- path: .
343
-
344
- - name: List packages
345
- run: ls -R .
346
- shell: bash
347
-
348
- - name: Test bindings
349
- run: docker run --rm -v $(pwd):/build -w /build node:\${{ matrix.node }}-alpine yarn test
350
-
351
- test-linux-aarch64-gnu-binding:
352
- name: Test bindings on aarch64-unknown-linux-gnu - node@\${{ matrix.node }}
353
- needs:
354
- - build
355
- strategy:
356
- fail-fast: false
357
- matrix:
358
- node: ['16', '18']
359
- node: ['18', '20']
360
- runs-on: ubuntu-latest
361
-
362
- steps:
363
- - uses: actions/checkout@v4
364
-
365
- - name: Download artifacts
366
- uses: actions/download-artifact@v3
367
- with:
368
- name: bindings-aarch64-unknown-linux-gnu
369
- path: .
370
-
371
- - name: List packages
372
- run: ls -R .
373
- shell: bash
374
-
375
- - name: Install dependencies
376
- run: |
377
- yarn config set supportedArchitectures.cpu "arm64"
378
- yarn config set supportedArchitectures.libc "glibc"
379
- yarn install
380
-
381
- - name: Set up QEMU
382
- uses: docker/setup-qemu-action@v3
383
- with:
384
- platforms: arm64
385
- - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
386
-
387
- - name: Setup and run tests
388
- uses: addnab/docker-run-action@v3
389
- with:
390
- image: node:\${{ matrix.node }}-slim
391
- options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
392
- run: |
393
- set -e
394
- yarn test
395
- ls -la
396
-
397
- test-linux-aarch64-musl-binding:
398
- name: Test bindings on aarch64-unknown-linux-musl - node@\${{ matrix.node }}
399
- needs:
400
- - build
401
- strategy:
402
- fail-fast: false
403
- matrix:
404
- node: ['16', '18']
405
-
406
- runs-on: ubuntu-latest
407
-
408
- steps:
409
- - uses: actions/checkout@v4
410
-
411
- - name: Download artifacts
412
- uses: actions/download-artifact@v3
413
- with:
414
- name: bindings-aarch64-unknown-linux-musl
415
- path: .
416
-
417
- - name: List packages
418
- run: ls -R .
419
- shell: bash
420
-
421
- - name: Install dependencies
422
- run: |
423
- yarn config set supportedArchitectures.cpu "arm64"
424
- yarn config set supportedArchitectures.libc "musl"
425
- yarn install
426
-
427
- - name: Set up QEMU
428
- uses: docker/setup-qemu-action@v3
429
- with:
430
- platforms: arm64
431
- - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
432
-
433
- - name: Setup and run tests
434
- uses: addnab/docker-run-action@v3
435
- with:
436
- image: node:\${{ matrix.node }}-alpine
437
- options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
438
- run: |
439
- set -e
440
- yarn test
441
-
442
- test-linux-arm-gnueabihf-binding:
443
- name: Test bindings on armv7-unknown-linux-gnueabihf - node@\${{ matrix.node }}
444
- needs:
445
- - build
446
- strategy:
447
- fail-fast: false
448
- matrix:
449
- node: ['16', '18']
450
- node: ['18', '20']
451
- runs-on: ubuntu-latest
452
-
453
- steps:
454
- - uses: actions/checkout@v4
455
-
456
- - name: Download artifacts
457
- uses: actions/download-artifact@v3
458
- with:
459
- name: bindings-armv7-unknown-linux-gnueabihf
460
- path: .
461
-
462
- - name: List packages
463
- run: ls -R .
464
- shell: bash
465
-
466
- - name: Install dependencies
467
- run: |
468
- yarn config set supportedArchitectures.cpu "arm"
469
- yarn install
470
-
471
- - name: Set up QEMU
472
- uses: docker/setup-qemu-action@v3
473
- with:
474
- platforms: arm
475
- - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
476
-
477
- - name: Setup and run tests
478
- uses: addnab/docker-run-action@v3
479
- with:
480
- image: node:\${{ matrix.node }}-bullseye-slim
481
- options: --platform linux/arm/v7 -v \${{ github.workspace }}:/build -w /build
482
- run: |
483
- set -e
484
- yarn test
485
- ls -la
486
-
487
- universal-macOS:
488
- name: Build universal macOS binary
489
- needs:
490
- - build
491
- runs-on: macos-latest
492
-
493
- steps:
494
- - uses: actions/checkout@v4
495
-
496
- - name: Setup node
497
- uses: actions/setup-node@v4
498
- with:
499
- node-version: 18
500
- cache: yarn
501
-
502
- - name: 'Install dependencies'
503
- run: yarn install
504
-
505
- - name: Download macOS x64 artifact
506
- uses: actions/download-artifact@v3
507
- with:
508
- name: bindings-x86_64-apple-darwin
509
- path: .
510
- - name: Download macOS arm64 artifact
511
- uses: actions/download-artifact@v3
512
- with:
513
- name: bindings-aarch64-apple-darwin
514
- path: .
515
-
516
- - name: Combine binaries
517
- run: yarn napi universalize
518
-
519
- - name: Upload artifact
520
- uses: actions/upload-artifact@v3
521
- with:
522
- name: bindings-universal-apple-darwin
523
- path: "*.node"
524
- if-no-files-found: error
525
-
526
- publish:
527
- name: Publish
528
- runs-on: ubuntu-latest
529
- needs:
530
- - test-linux-x64-gnu-binding
531
- - test-linux-x64-musl-binding
532
- - test-linux-aarch64-gnu-binding
533
- - test-linux-arm-gnueabihf-binding
534
- - test-macOS-windows-binding
535
- - test-linux-aarch64-musl-binding
536
- - build-freebsd
537
-
538
- steps:
539
- - uses: actions/checkout@v4
540
-
541
- - name: Setup node
542
- uses: actions/setup-node@v4
543
- with:
544
- node-version: 18
545
- cache: 'yarn'
546
- registry-url: 'https://registry.npmjs.org'
547
-
548
- - name: 'Install dependencies'
549
- run: yarn install
550
-
551
- - name: Download all artifacts
552
- uses: actions/download-artifact@v3
553
- with:
554
- path: artifacts
555
-
556
- - name: Move artifacts
557
- run: yarn artifacts
558
-
559
- - name: List packages
560
- run: ls -R ./npm
561
- shell: bash
562
-
563
- - name: Publish
564
- run: |
565
- if git log -1 --pretty=%B | grep "^[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+$";
566
- then
567
- npm publish --access public --provenance
568
- elif git log -1 --pretty=%B | grep "^[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+";
569
- then
570
- npm publish --tag next --access public --provenance
571
- else
572
- echo "Not a release, skipping publish"
573
- fi
574
- env:
575
- GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
576
- NODE_AUTH_TOKEN: \${{ secrets.NPM_TOKEN }}
577
- `;
578
- //# sourceMappingURL=ci-template.js.map
@@ -1 +0,0 @@
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgkBzB,CAAA"}
@@ -1,99 +0,0 @@
1
- import { load, dump } from 'js-yaml';
2
- import { NodeArchToCpu, UniArchsByPlatform, parseTriple, } from '../../utils/index.js';
3
- import { YAML } from './ci-template.js';
4
- const BUILD_FREEBSD = 'build-freebsd';
5
- const TEST_MACOS_WINDOWS = 'test-macOS-windows-binding';
6
- const TEST_LINUX_X64_GNU = 'test-linux-x64-gnu-binding';
7
- const TEST_LINUX_X64_MUSL = 'test-linux-x64-musl-binding';
8
- const TEST_LINUX_AARCH64_GNU = 'test-linux-aarch64-gnu-binding';
9
- const TEST_LINUX_AARCH64_MUSL = 'test-linux-aarch64-musl-binding';
10
- const TEST_LINUX_ARM_GNUEABIHF = 'test-linux-arm-gnueabihf-binding';
11
- const UNIVERSAL_MACOS = 'universal-macOS';
12
- export const createGithubActionsCIYml = (targets) => {
13
- const allTargets = new Set(targets.flatMap((t) => {
14
- const platform = parseTriple(t);
15
- if (platform.arch === 'universal') {
16
- const srcTriples = UniArchsByPlatform[platform.platform]?.map((arch) => t.replace('universal', NodeArchToCpu[arch]));
17
- return [t, ...(srcTriples ?? [])];
18
- }
19
- return [t];
20
- }));
21
- const fullTemplate = load(YAML());
22
- const requiredSteps = [];
23
- const enableWindowsX86 = allTargets.has('x86_64-pc-windows-msvc');
24
- const enableMacOSX86 = allTargets.has('x86_64-apple-darwin');
25
- const enableLinuxX86Gnu = allTargets.has('x86_64-unknown-linux-gnu');
26
- const enableLinuxX86Musl = allTargets.has('x86_64-unknown-linux-musl');
27
- const enableLinuxArm8Gnu = allTargets.has('aarch64-unknown-linux-gnu');
28
- const enableLinuxArm8Musl = allTargets.has('aarch64-unknown-linux-musl');
29
- const enableLinuxArm7 = allTargets.has('armv7-unknown-linux-gnueabihf');
30
- const enableFreeBSD = allTargets.has('x86_64-unknown-freebsd');
31
- const enableMacOSUni = allTargets.has('universal-apple-darwin');
32
- fullTemplate.jobs.build.strategy.matrix.settings =
33
- fullTemplate.jobs.build.strategy.matrix.settings.filter(({ target }) => allTargets.has(target));
34
- if (!fullTemplate.jobs.build.strategy.matrix.settings.length) {
35
- delete fullTemplate.jobs.build.strategy.matrix;
36
- }
37
- if (!enableFreeBSD) {
38
- delete fullTemplate.jobs[BUILD_FREEBSD];
39
- }
40
- else {
41
- requiredSteps.push(BUILD_FREEBSD);
42
- }
43
- if (!enableWindowsX86 && !enableMacOSX86) {
44
- delete fullTemplate.jobs[TEST_MACOS_WINDOWS];
45
- }
46
- else {
47
- const filterTargets = new Set();
48
- if (enableWindowsX86) {
49
- filterTargets.add('windows-latest');
50
- }
51
- if (enableMacOSUni || enableMacOSX86) {
52
- filterTargets.add('macos-latest');
53
- }
54
- fullTemplate.jobs[TEST_MACOS_WINDOWS].strategy.matrix.settings =
55
- fullTemplate.jobs[TEST_MACOS_WINDOWS].strategy.matrix.settings.filter(({ host }) => filterTargets.has(host));
56
- requiredSteps.push(TEST_MACOS_WINDOWS);
57
- }
58
- if (!enableLinuxX86Gnu) {
59
- delete fullTemplate.jobs[TEST_LINUX_X64_GNU];
60
- }
61
- else {
62
- requiredSteps.push(TEST_LINUX_X64_GNU);
63
- }
64
- if (!enableLinuxX86Musl) {
65
- delete fullTemplate.jobs[TEST_LINUX_X64_MUSL];
66
- }
67
- else {
68
- requiredSteps.push(TEST_LINUX_X64_MUSL);
69
- }
70
- if (!enableLinuxArm8Gnu) {
71
- delete fullTemplate.jobs[TEST_LINUX_AARCH64_GNU];
72
- }
73
- else {
74
- requiredSteps.push(TEST_LINUX_AARCH64_GNU);
75
- }
76
- if (!enableLinuxArm8Musl) {
77
- delete fullTemplate.jobs[TEST_LINUX_AARCH64_MUSL];
78
- }
79
- else {
80
- requiredSteps.push(TEST_LINUX_AARCH64_MUSL);
81
- }
82
- if (!enableLinuxArm7) {
83
- delete fullTemplate.jobs[TEST_LINUX_ARM_GNUEABIHF];
84
- }
85
- else {
86
- requiredSteps.push(TEST_LINUX_ARM_GNUEABIHF);
87
- }
88
- if (!enableMacOSUni) {
89
- delete fullTemplate.jobs[UNIVERSAL_MACOS];
90
- }
91
- else {
92
- requiredSteps.push(UNIVERSAL_MACOS);
93
- }
94
- fullTemplate.jobs.publish.needs = requiredSteps;
95
- return dump(fullTemplate, {
96
- lineWidth: 1000,
97
- });
98
- };
99
- //# sourceMappingURL=ci.yml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci.yml.js","sourceRoot":"","sources":["../../../src/api/templates/ci.yml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC,MAAM,aAAa,GAAG,eAAe,CAAA;AACrC,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;AACvD,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;AACvD,MAAM,mBAAmB,GAAG,6BAA6B,CAAA;AACzD,MAAM,sBAAsB,GAAG,gCAAgC,CAAA;AAC/D,MAAM,uBAAuB,GAAG,iCAAiC,CAAA;AACjE,MAAM,wBAAwB,GAAG,kCAAkC,CAAA;AACnE,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAEzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAiB,EAAE,EAAE;IAC5D,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;YACjC,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACrE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAA;YACD,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAA;SAClC;QACD,OAAO,CAAC,CAAC,CAAC,CAAA;IACZ,CAAC,CAAC,CACH,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAQ,CAAA;IAExC,MAAM,aAAa,GAAG,EAAE,CAAA;IACxB,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACjE,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAC5D,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACpE,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACtE,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACtE,MAAM,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACxE,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IACvE,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC9D,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC/D,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;QAC9C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CACrD,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAC3D,CAAA;IACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC5D,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAA;KAC/C;IAED,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;KACxC;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;KAClC;IAED,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,EAAE;QACxC,OAAO,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;KAC7C;SAAM;QACL,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;QACvC,IAAI,gBAAgB,EAAE;YACpB,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;SACpC;QACD,IAAI,cAAc,IAAI,cAAc,EAAE;YACpC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;SAClC;QACD,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;YAC5D,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CACnE,CAAC,EAAE,IAAI,EAAoC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CACxE,CAAA;QAEH,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;KACvC;IAED,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;KAC7C;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;KACvC;IAED,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;KAC9C;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;KACxC;IAED,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;KACjD;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;KAC3C;IAED,IAAI,CAAC,mBAAmB,EAAE;QACxB,OAAO,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;KAClD;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;KAC5C;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;KACnD;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;KAC7C;IAED,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;KAC1C;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;KACpC;IAED,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAA;IAE/C,OAAO,IAAI,CAAC,YAAY,EAAE;QACxB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,9 +0,0 @@
1
- export * from './.gitignore.js';
2
- export * from './.npmignore.js';
3
- export * from './build.rs.js';
4
- export * from './cargo.toml.js';
5
- export * from './ci.yml.js';
6
- export * from './lib.rs.js';
7
- export * from './package.json.js';
8
- export * from './js-binding.js';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/templates/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}