@napi-rs/cli 3.0.0-alpha.45 → 3.0.0-alpha.47

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 (39) hide show
  1. package/dist/api/new.js +11 -0
  2. package/dist/api/new.js.map +1 -1
  3. package/dist/api/templates/ci-template.d.ts +2 -1
  4. package/dist/api/templates/ci-template.js +22 -5
  5. package/dist/api/templates/ci-template.js.map +1 -1
  6. package/dist/api/templates/ci.yml.d.ts +2 -1
  7. package/dist/api/templates/ci.yml.js +5 -3
  8. package/dist/api/templates/ci.yml.js.map +1 -1
  9. package/dist/api/templates/js-binding.js +7 -1
  10. package/dist/api/templates/js-binding.js.map +1 -1
  11. package/dist/api/templates/load-wasi-template.js +8 -4
  12. package/dist/api/templates/load-wasi-template.js.map +1 -1
  13. package/dist/commands/new.js +3 -3
  14. package/dist/commands/new.js.map +1 -1
  15. package/dist/index.cjs +71 -28
  16. package/dist/utils/index.d.ts +0 -1
  17. package/dist/utils/index.js +0 -1
  18. package/dist/utils/index.js.map +1 -1
  19. package/dist/utils/target.d.ts +1 -1
  20. package/dist/utils/target.js +9 -1
  21. package/dist/utils/target.js.map +1 -1
  22. package/package.json +5 -4
  23. package/src/api/new.ts +15 -0
  24. package/src/api/templates/ci-template.ts +30 -5
  25. package/src/api/templates/ci.yml.ts +7 -3
  26. package/src/api/templates/js-binding.ts +7 -1
  27. package/src/api/templates/load-wasi-template.ts +8 -4
  28. package/src/commands/new.ts +3 -3
  29. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  30. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +21 -0
  31. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  32. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  33. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  34. package/src/utils/index.ts +0 -1
  35. package/src/utils/target.ts +11 -1
  36. package/dist/utils/ci.d.ts +0 -11
  37. package/dist/utils/ci.js +0 -96
  38. package/dist/utils/ci.js.map +0 -1
  39. package/src/utils/ci.ts +0 -111
@@ -3,7 +3,7 @@ export type Platform = NodeJS.Platform | 'wasm' | 'wasi';
3
3
  export declare const UNIVERSAL_TARGETS: {
4
4
  readonly 'universal-apple-darwin': readonly ["aarch64-apple-darwin", "x86_64-apple-darwin"];
5
5
  };
6
- export declare const AVAILABLE_TARGETS: readonly ["aarch64-apple-darwin", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-musl", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-unknown-freebsd", "i686-pc-windows-msvc", "armv7-unknown-linux-gnueabihf", "armv7-linux-androideabi", "universal-apple-darwin", "riscv64gc-unknown-linux-gnu", "wasm32-wasi-preview1-threads"];
6
+ export declare const AVAILABLE_TARGETS: readonly ["aarch64-apple-darwin", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-musl", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-unknown-freebsd", "i686-pc-windows-msvc", "armv7-unknown-linux-gnueabihf", "armv7-unknown-linux-musleabihf", "armv7-linux-androideabi", "universal-apple-darwin", "riscv64gc-unknown-linux-gnu", "powerpc64le-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi-preview1-threads"];
7
7
  export type TargetTriple = (typeof AVAILABLE_TARGETS)[number];
8
8
  export declare const DEFAULT_TARGETS: readonly ["x86_64-apple-darwin", "aarch64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu"];
9
9
  export declare const TARGET_LINKER: Record<string, string>;
@@ -15,9 +15,12 @@ export const AVAILABLE_TARGETS = [
15
15
  'x86_64-unknown-freebsd',
16
16
  'i686-pc-windows-msvc',
17
17
  'armv7-unknown-linux-gnueabihf',
18
+ 'armv7-unknown-linux-musleabihf',
18
19
  'armv7-linux-androideabi',
19
20
  'universal-apple-darwin',
20
21
  'riscv64gc-unknown-linux-gnu',
22
+ 'powerpc64le-unknown-linux-gnu',
23
+ 's390x-unknown-linux-gnu',
21
24
  'wasm32-wasi-preview1-threads',
22
25
  ];
23
26
  export const DEFAULT_TARGETS = [
@@ -29,6 +32,8 @@ export const DEFAULT_TARGETS = [
29
32
  export const TARGET_LINKER = {
30
33
  'aarch64-unknown-linux-musl': 'aarch64-linux-musl-gcc',
31
34
  'riscv64gc-unknown-linux-gnu': 'riscv64-linux-gnu-gcc',
35
+ 'powerpc64le-unknown-linux-gnu': 'powerpc64le-linux-gnu-gcc',
36
+ 's390x-unknown-linux-gnu': 's390x-linux-gnu-gcc',
32
37
  };
33
38
  const CpuToNodeArch = {
34
39
  x86_64: 'x64',
@@ -36,6 +41,7 @@ const CpuToNodeArch = {
36
41
  i686: 'ia32',
37
42
  armv7: 'arm',
38
43
  riscv64gc: 'riscv64',
44
+ powerpc64le: 'ppc64',
39
45
  };
40
46
  export const NodeArchToCpu = {
41
47
  x64: 'x86_64',
@@ -43,6 +49,7 @@ export const NodeArchToCpu = {
43
49
  ia32: 'i686',
44
50
  arm: 'armv7',
45
51
  riscv64: 'riscv64gc',
52
+ ppc64: 'powerpc64le',
46
53
  };
47
54
  const SysToNodePlatform = {
48
55
  linux: 'linux',
@@ -64,7 +71,8 @@ export const UniArchsByPlatform = {
64
71
  * - `abi` = The ABI, for example `gnu`, `android`, `eabi`, etc.
65
72
  */
66
73
  export function parseTriple(rawTriple) {
67
- if (rawTriple === 'wasm32-wasi-preview1-threads') {
74
+ if (rawTriple === 'wasm32-wasi-preview1-threads' ||
75
+ rawTriple.startsWith('wasm32-wasip')) {
68
76
  return {
69
77
  triple: rawTriple,
70
78
  platformArchABI: 'wasm32-wasi',
@@ -1 +1 @@
1
- {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/utils/target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/utils/target.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@napi-rs/cli",
3
- "version": "3.0.0-alpha.45",
3
+ "version": "3.0.0-alpha.47",
4
4
  "description": "Cli tools for napi-rs",
5
5
  "author": "LongYinan <lynweklm@gmail.com>",
6
6
  "homepage": "https://github.com/napi-rs/napi-rs",
@@ -72,7 +72,7 @@
72
72
  "clipanion": "^3.2.1",
73
73
  "colorette": "^2.0.20",
74
74
  "debug": "^4.3.4",
75
- "emnapi": "1.1.0",
75
+ "emnapi": "1.1.1",
76
76
  "inquirer": "^9.2.13",
77
77
  "js-yaml": "^4.1.0",
78
78
  "lodash-es": "^4.17.21",
@@ -89,13 +89,14 @@
89
89
  "@types/js-yaml": "^4.0.9",
90
90
  "@types/lodash-es": "^4.17.12",
91
91
  "@types/node": "^20.11.13",
92
+ "@types/semver": "^7.5.8",
92
93
  "ava": "^6.1.1",
93
94
  "env-paths": "^3.0.0",
94
95
  "esbuild": "^0.20.0",
95
96
  "prettier": "^3.2.4",
96
97
  "ts-node": "^10.9.2",
97
98
  "tslib": "^2.6.2",
98
- "typescript": "^5.3.3"
99
+ "typescript": "^5.4.4"
99
100
  },
100
101
  "peerDependencies": {
101
102
  "@emnapi/runtime": "^1.1.0",
@@ -127,5 +128,5 @@
127
128
  "**/__tests__/**/*.spec.ts"
128
129
  ]
129
130
  },
130
- "gitHead": "f5b685473117903f448888a7deda9fe5d7435aeb"
131
+ "gitHead": "af625fc7df762a2de73223913d1daa4a6849fade"
131
132
  }
package/src/api/new.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { execSync } from 'node:child_process'
1
2
  import path from 'node:path'
2
3
 
3
4
  import {
@@ -61,6 +62,20 @@ function processOptions(options: RawNewOptions) {
61
62
  throw new Error('At least one target must be enabled')
62
63
  }
63
64
  }
65
+ if (
66
+ options.targets.some((target) => target === 'wasm32-wasi-preview1-threads')
67
+ ) {
68
+ const out = execSync(`rustup target list`, {
69
+ encoding: 'utf8',
70
+ })
71
+ if (out.includes('wasm32-wasip1-threads')) {
72
+ options.targets.map((target) =>
73
+ target === 'wasm32-wasi-preview1-threads'
74
+ ? 'wasm32-wasip1-threads'
75
+ : target,
76
+ )
77
+ }
78
+ }
64
79
 
65
80
  return applyDefaultNewOptions(options) as NewOptions
66
81
  }
@@ -1,6 +1,14 @@
1
1
  import type { SupportedPackageManager } from '../../utils/config.js'
2
2
 
3
- export const YAML = (packageManager: SupportedPackageManager) => `
3
+ export type WasiTargetName =
4
+ | 'wasm32-wasi-preview1-threads'
5
+ | 'wasm32-wasip1-threads'
6
+ | 'wasm32-wasip2'
7
+
8
+ export const YAML = (
9
+ packageManager: SupportedPackageManager,
10
+ wasiTargetName?: WasiTargetName,
11
+ ) => `
4
12
  name: CI
5
13
 
6
14
  env:
@@ -58,6 +66,9 @@ jobs:
58
66
  - host: ubuntu-latest
59
67
  target: 'armv7-unknown-linux-gnueabihf'
60
68
  build: ${packageManager} build --platform --target armv7-unknown-linux-gnueabihf --use-napi-cross
69
+ - host: ubuntu-latest
70
+ target: 'armv7-unknown-linux-musleabihf'
71
+ build: ${packageManager} build --platform --target armv7-unknown-linux-musleabihf -x
61
72
  - host: ubuntu-latest
62
73
  target: 'aarch64-linux-android'
63
74
  build: ${packageManager} build --platform --target aarch64-linux-android
@@ -76,9 +87,23 @@ jobs:
76
87
  sudo apt-get update
77
88
  sudo apt-get install gcc-riscv64-linux-gnu -y
78
89
  build: ${packageManager} build --platform --target riscv64gc-unknown-linux-gnu
90
+ - host: ubuntu-latest
91
+ target: 'powerpc64le-unknown-linux-gnu'
92
+ setup: |
93
+ sudo apt-get update
94
+ sudo apt-get install gcc-powerpc64le-linux-gnu -y
95
+ build: ${packageManager} build --platform --target powerpc64le-unknown-linux-gnu
96
+ - host: ubuntu-latest
97
+ target: 's390x-unknown-linux-gnu'
98
+ setup: |
99
+ sudo apt-get update
100
+ sudo apt-get install gcc-s390x-linux-gnu -y
101
+ build: ${packageManager} build --platform --target s390x-unknown-linux-gnu
79
102
  - host: ubuntu-latest
80
103
  target: 'wasm32-wasi-preview1-threads'
81
104
  build: ${packageManager} build --platform --target wasm32-wasi-preview1-threads
105
+ target: '${wasiTargetName}'
106
+ build: ${packageManager} build --platform --target ${wasiTargetName}
82
107
 
83
108
  name: stable - \${{ matrix.settings.target }} - node@20
84
109
  runs-on: \${{ matrix.settings.host }}
@@ -141,7 +166,7 @@ jobs:
141
166
 
142
167
  - name: Upload artifact
143
168
  uses: actions/upload-artifact@v4
144
- if: matrix.settings.target != 'wasm32-wasi-preview1-threads'
169
+ if: matrix.settings.target != '${wasiTargetName}'
145
170
  with:
146
171
  name: bindings-\${{ matrix.settings.target }}
147
172
  path: "*.node"
@@ -149,7 +174,7 @@ jobs:
149
174
 
150
175
  - name: Upload artifact
151
176
  uses: actions/upload-artifact@v4
152
- if: matrix.settings.target == 'wasm32-wasi-preview1-threads'
177
+ if: matrix.settings.target == '${wasiTargetName}'
153
178
  with:
154
179
  name: bindings-\${{ matrix.settings.target }}
155
180
  path: "*.wasm"
@@ -162,7 +187,7 @@ jobs:
162
187
  - uses: actions/checkout@v4
163
188
  - name: Build
164
189
  id: build
165
- uses: cross-platform-actions/action@v0.21.1
190
+ uses: cross-platform-actions/action@v0.23.0
166
191
  timeout-minutes: 30
167
192
  env:
168
193
  DEBUG: 'napi:*'
@@ -496,7 +521,7 @@ jobs:
496
521
  - name: Download artifacts
497
522
  uses: actions/download-artifact@v4
498
523
  with:
499
- name: bindings-wasm32-wasi-preview1-threads
524
+ name: bindings-${wasiTargetName}
500
525
  path: .
501
526
  - name: List packages
502
527
  run: ls -R .
@@ -7,7 +7,7 @@ import {
7
7
  parseTriple,
8
8
  } from '../../utils/index.js'
9
9
 
10
- import { YAML } from './ci-template.js'
10
+ import { type WasiTargetName, YAML } from './ci-template.js'
11
11
 
12
12
  const BUILD_FREEBSD = 'build-freebsd'
13
13
  const TEST_MACOS_WINDOWS = 'test-macOS-windows-binding'
@@ -22,6 +22,7 @@ const UNIVERSAL_MACOS = 'universal-macOS'
22
22
  export const createGithubActionsCIYml = (
23
23
  targets: string[],
24
24
  packageManager: SupportedPackageManager,
25
+ wasiTargetName?: WasiTargetName,
25
26
  ) => {
26
27
  const allTargets = new Set(
27
28
  targets.flatMap((t) => {
@@ -36,7 +37,7 @@ export const createGithubActionsCIYml = (
36
37
  }),
37
38
  )
38
39
 
39
- const fullTemplate = load(YAML(packageManager)) as any
40
+ const fullTemplate = load(YAML(packageManager, wasiTargetName)) as any
40
41
 
41
42
  const requiredSteps = []
42
43
  const enableWindowsX86 = allTargets.has('x86_64-pc-windows-msvc')
@@ -48,7 +49,10 @@ export const createGithubActionsCIYml = (
48
49
  const enableLinuxArm7 = allTargets.has('armv7-unknown-linux-gnueabihf')
49
50
  const enableFreeBSD = allTargets.has('x86_64-unknown-freebsd')
50
51
  const enableMacOSUni = allTargets.has('universal-apple-darwin')
51
- const enableWasi = allTargets.has('wasm32-wasi-preview1-threads')
52
+ const enableWasi =
53
+ allTargets.has('wasm32-wasi-preview1-threads') ||
54
+ allTargets.has('wasm32-wasip1-threads') ||
55
+ allTargets.has('wasm32-wasip2')
52
56
  fullTemplate.jobs.build.strategy.matrix.settings =
53
57
  fullTemplate.jobs.build.strategy.matrix.settings.filter(
54
58
  ({ target }: { target: string }) => allTargets.has(target),
@@ -125,13 +125,19 @@ function requireNative() {
125
125
  ${requireTuple('linux-arm64-gnu')}
126
126
  }
127
127
  } else if (process.arch === 'arm') {
128
- ${requireTuple('linux-arm-gnueabihf')}
128
+ if (isMusl()) {
129
+ ${requireTuple('linux-arm-musleabihf')}
130
+ } else {
131
+ ${requireTuple('linux-arm-gnueabihf')}
132
+ }
129
133
  } else if (process.arch === 'riscv64') {
130
134
  if (isMusl()) {
131
135
  ${requireTuple('linux-riscv64-musl')}
132
136
  } else {
133
137
  ${requireTuple('linux-riscv64-gnu')}
134
138
  }
139
+ } else if (process.arch === 'ppc64') {
140
+ ${requireTuple('linux-ppc64-gnu')}
135
141
  } else if (process.arch === 's390x') {
136
142
  ${requireTuple('linux-s390x-gnu')}
137
143
  } else {
@@ -24,8 +24,10 @@ const __wasi = new __WASI({
24
24
  const __emnapiContext = __emnapiGetDefaultContext()
25
25
 
26
26
  const __sharedMemory = new WebAssembly.Memory({
27
- initial: 1024,
28
- maximum: 10240,
27
+ // 1Gb
28
+ initial: 16384,
29
+ // 4Gb
30
+ maximum: 65536,
29
31
  shared: true,
30
32
  })
31
33
 
@@ -95,8 +97,10 @@ const __wasi = new __nodeWASI({
95
97
  const __emnapiContext = __emnapiGetDefaultContext()
96
98
 
97
99
  const __sharedMemory = new WebAssembly.Memory({
98
- initial: 1024,
99
- maximum: 10240,
100
+ // 1Gb
101
+ initial: 16384,
102
+ // 4Gb
103
+ maximum: 65536,
100
104
  shared: true,
101
105
  })
102
106
 
@@ -64,14 +64,14 @@ export class NewCommand extends BaseNewCommand {
64
64
  private async fetchName(defaultName: string): Promise<string> {
65
65
  return (
66
66
  this.$$name ??
67
- (await inquirer
67
+ inquirer
68
68
  .prompt({
69
69
  type: 'input',
70
70
  name: 'name',
71
71
  message: 'Package name (the name field in your package.json file)',
72
72
  default: defaultName,
73
73
  })
74
- .then(({ name }) => name))
74
+ .then(({ name }) => name)
75
75
  )
76
76
  }
77
77
 
@@ -93,7 +93,7 @@ export class NewCommand extends BaseNewCommand {
93
93
  name: 'minNodeApiVersion',
94
94
  message: 'Minimum node-api version (with node version requirement)',
95
95
  loop: false,
96
- choices: new Array(8).fill(0).map((_, i) => ({
96
+ choices: Array.from({ length: 8 }, (_, i) => ({
97
97
  name: `napi${i + 1} (${napiEngineRequirement(i + 1)})`,
98
98
  value: i + 1,
99
99
  })),
@@ -93,6 +93,13 @@ Generated by [AVA](https://avajs.dev).
93
93
  platformArchABI: 'linux-arm-gnueabihf',
94
94
  triple: 'armv7-unknown-linux-gnueabihf',
95
95
  },
96
+ {
97
+ abi: 'musleabihf',
98
+ arch: 'arm',
99
+ platform: 'linux',
100
+ platformArchABI: 'linux-arm-musleabihf',
101
+ triple: 'armv7-unknown-linux-musleabihf',
102
+ },
96
103
  {
97
104
  abi: 'eabi',
98
105
  arch: 'arm',
@@ -114,6 +121,20 @@ Generated by [AVA](https://avajs.dev).
114
121
  platformArchABI: 'linux-riscv64-gnu',
115
122
  triple: 'riscv64gc-unknown-linux-gnu',
116
123
  },
124
+ {
125
+ abi: 'gnu',
126
+ arch: 'ppc64',
127
+ platform: 'linux',
128
+ platformArchABI: 'linux-ppc64-gnu',
129
+ triple: 'powerpc64le-unknown-linux-gnu',
130
+ },
131
+ {
132
+ abi: 'gnu',
133
+ arch: 's390x',
134
+ platform: 'linux',
135
+ platformArchABI: 'linux-s390x-gnu',
136
+ triple: 's390x-unknown-linux-gnu',
137
+ },
117
138
  {
118
139
  abi: 'wasi',
119
140
  arch: 'wasm32',
@@ -1,4 +1,3 @@
1
- export * from './ci.js'
2
1
  export * from './log.js'
3
2
  export * from './misc.js'
4
3
  export * from './target.js'
@@ -19,9 +19,12 @@ export const AVAILABLE_TARGETS = [
19
19
  'x86_64-unknown-freebsd',
20
20
  'i686-pc-windows-msvc',
21
21
  'armv7-unknown-linux-gnueabihf',
22
+ 'armv7-unknown-linux-musleabihf',
22
23
  'armv7-linux-androideabi',
23
24
  'universal-apple-darwin',
24
25
  'riscv64gc-unknown-linux-gnu',
26
+ 'powerpc64le-unknown-linux-gnu',
27
+ 's390x-unknown-linux-gnu',
25
28
  'wasm32-wasi-preview1-threads',
26
29
  ] as const
27
30
 
@@ -37,6 +40,8 @@ export const DEFAULT_TARGETS = [
37
40
  export const TARGET_LINKER: Record<string, string> = {
38
41
  'aarch64-unknown-linux-musl': 'aarch64-linux-musl-gcc',
39
42
  'riscv64gc-unknown-linux-gnu': 'riscv64-linux-gnu-gcc',
43
+ 'powerpc64le-unknown-linux-gnu': 'powerpc64le-linux-gnu-gcc',
44
+ 's390x-unknown-linux-gnu': 's390x-linux-gnu-gcc',
40
45
  }
41
46
 
42
47
  // https://nodejs.org/api/process.html#process_process_arch
@@ -62,6 +67,7 @@ const CpuToNodeArch: Record<string, NodeJSArch> = {
62
67
  i686: 'ia32',
63
68
  armv7: 'arm',
64
69
  riscv64gc: 'riscv64',
70
+ powerpc64le: 'ppc64',
65
71
  }
66
72
 
67
73
  export const NodeArchToCpu: Record<string, string> = {
@@ -70,6 +76,7 @@ export const NodeArchToCpu: Record<string, string> = {
70
76
  ia32: 'i686',
71
77
  arm: 'armv7',
72
78
  riscv64: 'riscv64gc',
79
+ ppc64: 'powerpc64le',
73
80
  }
74
81
 
75
82
  const SysToNodePlatform: Record<string, Platform> = {
@@ -102,7 +109,10 @@ export interface Target {
102
109
  * - `abi` = The ABI, for example `gnu`, `android`, `eabi`, etc.
103
110
  */
104
111
  export function parseTriple(rawTriple: string): Target {
105
- if (rawTriple === 'wasm32-wasi-preview1-threads') {
112
+ if (
113
+ rawTriple === 'wasm32-wasi-preview1-threads' ||
114
+ rawTriple.startsWith('wasm32-wasip')
115
+ ) {
106
116
  return {
107
117
  triple: rawTriple,
108
118
  platformArchABI: 'wasm32-wasi',
@@ -1,11 +0,0 @@
1
- import { TargetTriple } from './target.js';
2
- export declare const CIConfig: Partial<Record<TargetTriple, {
3
- host: string;
4
- build_image?: string;
5
- build_setup?: string[];
6
- test?: boolean;
7
- test_image?: string;
8
- test_setup?: string[];
9
- yarn_cpu?: string;
10
- yarn_libc?: string;
11
- }>>;
package/dist/utils/ci.js DELETED
@@ -1,96 +0,0 @@
1
- export const CIConfig = {
2
- 'x86_64-apple-darwin': {
3
- host: 'macos-latest',
4
- },
5
- 'x86_64-pc-windows-msvc': {
6
- host: 'windows-latest',
7
- },
8
- 'i686-pc-windows-msvc': {
9
- host: 'windows-latest',
10
- test: false,
11
- },
12
- 'x86_64-unknown-linux-gnu': {
13
- host: 'ubuntu-latest',
14
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian',
15
- },
16
- 'x86_64-unknown-linux-musl': {
17
- host: 'ubuntu-latest',
18
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
19
- test_image: 'node:${{ matrix.node }}-alpine',
20
- yarn_libc: 'musl',
21
- },
22
- 'aarch64-apple-darwin': {
23
- host: 'macos-latest',
24
- build_setup: [
25
- 'sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*',
26
- 'export CC=$(xcrun -f clang)',
27
- 'export CXX=$(xcrun -f clang++)',
28
- 'export SDK_ROOT=$(xcrun --sdk macosx --show-sdk-path)',
29
- 'export CFLAGS="-isysroot $SDK_ROOT -isystem $SDK_ROOT"',
30
- ],
31
- test: false,
32
- },
33
- 'aarch64-unknown-linux-gnu': {
34
- host: 'ubuntu-latest',
35
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64',
36
- build_setup: [
37
- 'sudo apt-get update',
38
- 'sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y',
39
- 'export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu',
40
- ],
41
- test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }}',
42
- yarn_cpu: 'arm64',
43
- },
44
- 'aarch64-unknown-linux-musl': {
45
- host: 'ubuntu-latest',
46
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
47
- build_setup: ['rustup target add aarch64-unknown-linux-musl'],
48
- test_image: 'multiarch/alpine:aarch64-latest-stable',
49
- test_setup: ['apk add nodejs npm yarn'],
50
- yarn_cpu: 'arm64',
51
- yarn_libc: 'musl',
52
- },
53
- 'aarch64-pc-windows-msvc': {
54
- host: 'windows-latest',
55
- test: false,
56
- },
57
- 'armv7-unknown-linux-gnueabihf': {
58
- host: 'ubuntu-latest',
59
- build_setup: [
60
- 'sudo apt-get update',
61
- 'sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y',
62
- ],
63
- yarn_cpu: 'arm',
64
- test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }}',
65
- },
66
- 'aarch64-linux-android': {
67
- host: 'ubuntu-latest',
68
- build_setup: [
69
- 'export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
70
- 'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
71
- 'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"',
72
- 'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
73
- ],
74
- test: false,
75
- },
76
- 'armv7-linux-androideabi': {
77
- host: 'ubuntu-latest',
78
- build_setup: [
79
- 'export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
80
- 'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
81
- 'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"',
82
- 'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
83
- ],
84
- test: false,
85
- },
86
- 'riscv64gc-unknown-linux-gnu': {
87
- host: 'ubuntu-latest',
88
- build_setup: [
89
- 'sudo apt-get update',
90
- 'sudo apt-get install g++-riscv64-linux-gnu gcc-riscv64-linux-gnu -y',
91
- ],
92
- // No official nodejs docker image for riscv64
93
- test: false,
94
- },
95
- };
96
- //# sourceMappingURL=ci.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/utils/ci.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAcjB;IACF,qBAAqB,EAAE;QACrB,IAAI,EAAE,cAAc;KACrB;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,gBAAgB;KACvB;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,KAAK;KACZ;IACD,0BAA0B,EAAE;QAC1B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;KAC9D;IACD,2BAA2B,EAAE;QAC3B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;QAC7D,UAAU,EAAE,gCAAgC;QAC5C,SAAS,EAAE,MAAM;KAClB;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE;YACX,wDAAwD;YACxD,6BAA6B;YAC7B,gCAAgC;YAChC,uDAAuD;YACvD,wDAAwD;SACzD;QACD,IAAI,EAAE,KAAK;KACZ;IACD,2BAA2B,EAAE;QAC3B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,qBAAqB;YACrB,qEAAqE;YACrE,oDAAoD;SACrD;QACD,UAAU,EAAE,2DAA2D;QACvE,QAAQ,EAAE,OAAO;KAClB;IACD,4BAA4B,EAAE;QAC5B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE,CAAC,8CAA8C,CAAC;QAC7D,UAAU,EAAE,wCAAwC;QACpD,UAAU,EAAE,CAAC,yBAAyB,CAAC;QACvC,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,MAAM;KAClB;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,KAAK;KACZ;IACD,+BAA+B,EAAE;QAC/B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qBAAqB;YACrB,yEAAyE;SAC1E;QACD,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,yDAAyD;KACtE;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,gJAAgJ;YAChJ,yGAAyG;YACzG,4GAA4G;YAC5G,qFAAqF;SACtF;QACD,IAAI,EAAE,KAAK;KACZ;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qJAAqJ;YACrJ,4GAA4G;YAC5G,+GAA+G;YAC/G,qFAAqF;SACtF;QACD,IAAI,EAAE,KAAK;KACZ;IACD,6BAA6B,EAAE;QAC7B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qBAAqB;YACrB,qEAAqE;SACtE;QACD,8CAA8C;QAC9C,IAAI,EAAE,KAAK;KACZ;CACF,CAAA"}
package/src/utils/ci.ts DELETED
@@ -1,111 +0,0 @@
1
- import { TargetTriple } from './target.js'
2
-
3
- export const CIConfig: Partial<
4
- Record<
5
- TargetTriple,
6
- {
7
- host: string
8
- build_image?: string
9
- build_setup?: string[]
10
- test?: boolean
11
- test_image?: string
12
- test_setup?: string[]
13
- yarn_cpu?: string
14
- yarn_libc?: string
15
- }
16
- >
17
- > = {
18
- 'x86_64-apple-darwin': {
19
- host: 'macos-latest',
20
- },
21
- 'x86_64-pc-windows-msvc': {
22
- host: 'windows-latest',
23
- },
24
- 'i686-pc-windows-msvc': {
25
- host: 'windows-latest',
26
- test: false,
27
- },
28
- 'x86_64-unknown-linux-gnu': {
29
- host: 'ubuntu-latest',
30
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian',
31
- },
32
- 'x86_64-unknown-linux-musl': {
33
- host: 'ubuntu-latest',
34
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
35
- test_image: 'node:${{ matrix.node }}-alpine',
36
- yarn_libc: 'musl',
37
- },
38
- 'aarch64-apple-darwin': {
39
- host: 'macos-latest',
40
- build_setup: [
41
- 'sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*',
42
- 'export CC=$(xcrun -f clang)',
43
- 'export CXX=$(xcrun -f clang++)',
44
- 'export SDK_ROOT=$(xcrun --sdk macosx --show-sdk-path)',
45
- 'export CFLAGS="-isysroot $SDK_ROOT -isystem $SDK_ROOT"',
46
- ],
47
- test: false,
48
- },
49
- 'aarch64-unknown-linux-gnu': {
50
- host: 'ubuntu-latest',
51
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64',
52
- build_setup: [
53
- 'sudo apt-get update',
54
- 'sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y',
55
- 'export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu',
56
- ],
57
- test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }}',
58
- yarn_cpu: 'arm64',
59
- },
60
- 'aarch64-unknown-linux-musl': {
61
- host: 'ubuntu-latest',
62
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
63
- build_setup: ['rustup target add aarch64-unknown-linux-musl'],
64
- test_image: 'multiarch/alpine:aarch64-latest-stable',
65
- test_setup: ['apk add nodejs npm yarn'],
66
- yarn_cpu: 'arm64',
67
- yarn_libc: 'musl',
68
- },
69
- 'aarch64-pc-windows-msvc': {
70
- host: 'windows-latest',
71
- test: false,
72
- },
73
- 'armv7-unknown-linux-gnueabihf': {
74
- host: 'ubuntu-latest',
75
- build_setup: [
76
- 'sudo apt-get update',
77
- 'sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y',
78
- ],
79
- yarn_cpu: 'arm',
80
- test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }}',
81
- },
82
- 'aarch64-linux-android': {
83
- host: 'ubuntu-latest',
84
- build_setup: [
85
- 'export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
86
- 'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
87
- 'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"',
88
- 'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
89
- ],
90
- test: false,
91
- },
92
- 'armv7-linux-androideabi': {
93
- host: 'ubuntu-latest',
94
- build_setup: [
95
- 'export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
96
- 'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
97
- 'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"',
98
- 'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
99
- ],
100
- test: false,
101
- },
102
- 'riscv64gc-unknown-linux-gnu': {
103
- host: 'ubuntu-latest',
104
- build_setup: [
105
- 'sudo apt-get update',
106
- 'sudo apt-get install g++-riscv64-linux-gnu gcc-riscv64-linux-gnu -y',
107
- ],
108
- // No official nodejs docker image for riscv64
109
- test: false,
110
- },
111
- }