From 0f1994da45873139bd4370af4a45ce7d3f3b80bf Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Mon, 6 Oct 2025 13:58:50 -0700 Subject: [PATCH 1/7] fix: add missing lines --- pipelines/prebuilds.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pipelines/prebuilds.yml b/pipelines/prebuilds.yml index 426069e13..3212f1cad 100644 --- a/pipelines/prebuilds.yml +++ b/pipelines/prebuilds.yml @@ -31,7 +31,8 @@ extends: artifactName: 'win32-x64' steps: - template: pipelines/build.yml@self - arch: x64 + parameters: + arch: x64 - job: windows-arm64 pool: name: 1es-windows-2022-x64 @@ -43,7 +44,8 @@ extends: artifactName: 'win32-arm64' steps: - template: pipelines/build.yml@self - arch: arm64 + parameters: + arch: arm64 - job: macOS-x64 pool: name: Azure Pipelines @@ -56,7 +58,8 @@ extends: artifactName: 'macOS-x64' steps: - template: pipelines/build.yml@self - arch: x64 + parameters: + arch: x64 - job: macOS-arm64 pool: name: Azure Pipelines @@ -69,7 +72,8 @@ extends: artifactName: 'macOS-arm64' steps: - template: pipelines/build.yml@self - arch: arm64 + parameters: + arch: arm64 - job: linux-x64 pool: name: 1es-ubuntu-22.04-x64 @@ -81,7 +85,8 @@ extends: artifactName: 'linux-x64' steps: - template: pipelines/build.yml@self - arch: x64 + parameters: + arch: x64 - job: linux-arm64 pool: name: 1es-mariner-2.0-arm64 @@ -93,4 +98,5 @@ extends: artifactName: 'linux-arm64' steps: - template: pipelines/build.yml@self - arch: arm64 \ No newline at end of file + parameters: + arch: arm64 From 8bd4c80d3ec71b0acd434205ae1490501d4ba584 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Mon, 6 Oct 2025 14:05:36 -0700 Subject: [PATCH 2/7] Fix job names --- pipelines/prebuilds.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pipelines/prebuilds.yml b/pipelines/prebuilds.yml index 3212f1cad..a745acb63 100644 --- a/pipelines/prebuilds.yml +++ b/pipelines/prebuilds.yml @@ -20,7 +20,7 @@ extends: stages: - stage: Build jobs: - - job: windows-x64 + - job: win32_x64 pool: name: 1es-windows-2022-x64 os: windows @@ -33,7 +33,7 @@ extends: - template: pipelines/build.yml@self parameters: arch: x64 - - job: windows-arm64 + - job: win32_arm64 pool: name: 1es-windows-2022-x64 os: windows @@ -46,7 +46,7 @@ extends: - template: pipelines/build.yml@self parameters: arch: arm64 - - job: macOS-x64 + - job: macOS_x64 pool: name: Azure Pipelines vmImage: macOS-latest @@ -60,7 +60,7 @@ extends: - template: pipelines/build.yml@self parameters: arch: x64 - - job: macOS-arm64 + - job: macOS_arm64 pool: name: Azure Pipelines vmImage: macOS-latest @@ -74,7 +74,7 @@ extends: - template: pipelines/build.yml@self parameters: arch: arm64 - - job: linux-x64 + - job: linux_x64 pool: name: 1es-ubuntu-22.04-x64 os: linux @@ -87,7 +87,7 @@ extends: - template: pipelines/build.yml@self parameters: arch: x64 - - job: linux-arm64 + - job: linux_arm64 pool: name: 1es-mariner-2.0-arm64 os: linux From 3e8d7b9c6063803f80ce6709f2adc8cc8216ed9c Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Mon, 6 Oct 2025 14:16:00 -0700 Subject: [PATCH 3/7] Use Ubuntu for linux_arm64 --- pipelines/prebuilds.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pipelines/prebuilds.yml b/pipelines/prebuilds.yml index a745acb63..e538c2508 100644 --- a/pipelines/prebuilds.yml +++ b/pipelines/prebuilds.yml @@ -89,7 +89,7 @@ extends: arch: x64 - job: linux_arm64 pool: - name: 1es-mariner-2.0-arm64 + name: 1es-ubuntu-22.04-x64 os: linux templateContext: outputs: From a890a3817667120df51959002a5c6bb077e5e59a Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Mon, 6 Oct 2025 14:43:11 -0700 Subject: [PATCH 4/7] Add combining archive stage for prebuilds --- pipelines/prebuilds.yml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/pipelines/prebuilds.yml b/pipelines/prebuilds.yml index e538c2508..80576fcd3 100644 --- a/pipelines/prebuilds.yml +++ b/pipelines/prebuilds.yml @@ -100,3 +100,44 @@ extends: - template: pipelines/build.yml@self parameters: arch: arm64 + + - stage: Archive + jobs: + - job: archive + pool: + name: 1es-ubuntu-22.04-x64 + os: linux + templateContext: + inputs: + - input: pipelineArtifact + artifactName: win32-x64 + targetPath: $(Build.ArtifactStagingDirectory)/win32-x64 + - input: pipelineArtifact + artifactName: win32-arm64 + targetPath: $(Build.ArtifactStagingDirectory)/win32-arm64 + - input: pipelineArtifact + artifactName: macOS-x64 + targetPath: $(Build.ArtifactStagingDirectory)/macOS-x64 + - input: pipelineArtifact + artifactName: macOS-arm64 + targetPath: $(Build.ArtifactStagingDirectory)/macOS-arm64 + - input: pipelineArtifact + artifactName: linux-x64 + targetPath: $(Build.ArtifactStagingDirectory)/linux-x64 + - input: pipelineArtifact + artifactName: linux-arm64 + targetPath: $(Build.ArtifactStagingDirectory)/linux-arm64 + outputs: + - output: pipelineArtifact + targetPath: $(Build.ArtifactStagingDirectory)/prebuilds + artifactName: 'prebuilds' + steps: + - script: | + mkdir -p $(Build.ArtifactStagingDirectory)/prebuilds + cp -r $(Build.ArtifactStagingDirectory)/win32-x64 $(Build.ArtifactStagingDirectory)/prebuilds/ + cp -r $(Build.ArtifactStagingDirectory)/win32-arm64 $(Build.ArtifactStagingDirectory)/prebuilds/ + cp -r $(Build.ArtifactStagingDirectory)/macOS-x64 $(Build.ArtifactStagingDirectory)/prebuilds/ + cp -r $(Build.ArtifactStagingDirectory)/macOS-arm64 $(Build.ArtifactStagingDirectory)/prebuilds/ + cp -r $(Build.ArtifactStagingDirectory)/linux-x64 $(Build.ArtifactStagingDirectory)/prebuilds/ + cp -r $(Build.ArtifactStagingDirectory)/linux-arm64 $(Build.ArtifactStagingDirectory)/prebuilds/ + displayName: 'Create prebuilds archive' From 981916e3047223636ef68edd64cfca1f62fa041c Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Mon, 6 Oct 2025 15:04:40 -0700 Subject: [PATCH 5/7] Ref artifact from publish script --- .npmignore | 1 + package.json | 1 + pipelines/prebuilds.yml | 16 ++++++++-------- publish.yml | 16 ++++++++++++++++ 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/.npmignore b/.npmignore index b92b80003..d63b5e333 100644 --- a/.npmignore +++ b/.npmignore @@ -1,2 +1,3 @@ *.test.js *.test.ts +_manifest/ diff --git a/package.json b/package.json index af20c8357..511256284 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "build": "tsc -b ./src/tsconfig.json", "watch": "tsc -b -w ./src/tsconfig.json", "lint": "eslint -c .eslintrc.js --ext .ts src/", + "install": "node scripts/prebuild.js || node-gyp rebuild", "postinstall": "node scripts/post-install.js", "compileCommands": "node scripts/gen-compile-commands.js", "test": "cross-env NODE_ENV=test mocha -R spec --exit lib/*.test.js", diff --git a/pipelines/prebuilds.yml b/pipelines/prebuilds.yml index 80576fcd3..b6934a930 100644 --- a/pipelines/prebuilds.yml +++ b/pipelines/prebuilds.yml @@ -55,7 +55,7 @@ extends: outputs: - output: pipelineArtifact targetPath: $(Build.SourcesDirectory)/build/Release - artifactName: 'macOS-x64' + artifactName: 'darwin-x64' steps: - template: pipelines/build.yml@self parameters: @@ -69,7 +69,7 @@ extends: outputs: - output: pipelineArtifact targetPath: $(Build.SourcesDirectory)/build/Release - artifactName: 'macOS-arm64' + artifactName: 'darwin-arm64' steps: - template: pipelines/build.yml@self parameters: @@ -116,11 +116,11 @@ extends: artifactName: win32-arm64 targetPath: $(Build.ArtifactStagingDirectory)/win32-arm64 - input: pipelineArtifact - artifactName: macOS-x64 - targetPath: $(Build.ArtifactStagingDirectory)/macOS-x64 + artifactName: darwin-x64 + targetPath: $(Build.ArtifactStagingDirectory)/darwin-x64 - input: pipelineArtifact - artifactName: macOS-arm64 - targetPath: $(Build.ArtifactStagingDirectory)/macOS-arm64 + artifactName: darwin-arm64 + targetPath: $(Build.ArtifactStagingDirectory)/darwin-arm64 - input: pipelineArtifact artifactName: linux-x64 targetPath: $(Build.ArtifactStagingDirectory)/linux-x64 @@ -136,8 +136,8 @@ extends: mkdir -p $(Build.ArtifactStagingDirectory)/prebuilds cp -r $(Build.ArtifactStagingDirectory)/win32-x64 $(Build.ArtifactStagingDirectory)/prebuilds/ cp -r $(Build.ArtifactStagingDirectory)/win32-arm64 $(Build.ArtifactStagingDirectory)/prebuilds/ - cp -r $(Build.ArtifactStagingDirectory)/macOS-x64 $(Build.ArtifactStagingDirectory)/prebuilds/ - cp -r $(Build.ArtifactStagingDirectory)/macOS-arm64 $(Build.ArtifactStagingDirectory)/prebuilds/ + cp -r $(Build.ArtifactStagingDirectory)/darwin-x64 $(Build.ArtifactStagingDirectory)/prebuilds/ + cp -r $(Build.ArtifactStagingDirectory)/darwin-arm64 $(Build.ArtifactStagingDirectory)/prebuilds/ cp -r $(Build.ArtifactStagingDirectory)/linux-x64 $(Build.ArtifactStagingDirectory)/prebuilds/ cp -r $(Build.ArtifactStagingDirectory)/linux-arm64 $(Build.ArtifactStagingDirectory)/prebuilds/ displayName: 'Create prebuilds archive' diff --git a/publish.yml b/publish.yml index 962837b7e..659b420a2 100644 --- a/publish.yml +++ b/publish.yml @@ -39,6 +39,14 @@ extends: - name: node-pty buildSteps: + - task: DownloadPipelineArtifact@2 + displayName: 'Download prebuilds' + inputs: + pipeline: '647' + runVersion: 'latestFromBranch' + runBranch: 'main' + artifact: 'prebuilds' + targetPath: 'prebuilds' - script: npm ci displayName: 'Install dependencies and build' # The following script leaves the version unchanged for @@ -47,6 +55,14 @@ extends: displayName: 'Increment version' testSteps: + - task: DownloadPipelineArtifact@2 + displayName: 'Download prebuilds' + inputs: + pipeline: '647' + runVersion: 'latestFromBranch' + runBranch: 'main' + artifact: 'prebuilds' + targetPath: 'prebuilds' - script: npm ci displayName: 'Install dependencies and build' - script: npm test From a63ce34ce291e72eb1370d59c03b3c9ef07b3034 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Mon, 6 Oct 2025 15:43:44 -0700 Subject: [PATCH 6/7] Add check for npm_config_build_from_source --- scripts/prebuild.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/prebuild.js b/scripts/prebuild.js index 3b1f086ce..65bec0f4f 100644 --- a/scripts/prebuild.js +++ b/scripts/prebuild.js @@ -11,6 +11,16 @@ const path = require('path'); * node scripts/prebuild.js */ +// Skip copying prebuilds when npm_config_build_from_source is set +const buildFromSource = process.env.npm_config_build_from_source; +if (buildFromSource) { + const val = buildFromSource.toLowerCase(); + if (val !== 'false' && val !== '0' && val !== '') { + console.log('\x1b[33m> Skipping prebuild copy because npm_config_build_from_source is set\x1b[0m'); + process.exit(1); + } +} + const PREBUILD_DIR = path.join(__dirname, '..', 'prebuilds', `${process.platform}-${process.arch}`); const RELEASE_DIR = path.join(__dirname, '../build/Release'); From 753d0a6af2530503999d9421e54a613eed7e60e1 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Mon, 6 Oct 2025 16:12:56 -0700 Subject: [PATCH 7/7] simplify --- scripts/prebuild.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/scripts/prebuild.js b/scripts/prebuild.js index 65bec0f4f..a8fc93029 100644 --- a/scripts/prebuild.js +++ b/scripts/prebuild.js @@ -12,13 +12,9 @@ const path = require('path'); */ // Skip copying prebuilds when npm_config_build_from_source is set -const buildFromSource = process.env.npm_config_build_from_source; -if (buildFromSource) { - const val = buildFromSource.toLowerCase(); - if (val !== 'false' && val !== '0' && val !== '') { - console.log('\x1b[33m> Skipping prebuild copy because npm_config_build_from_source is set\x1b[0m'); - process.exit(1); - } +if (process.env.npm_config_build_from_source === 'true') { + console.log('\x1b[33m> Skipping prebuild copy because npm_config_build_from_source is set\x1b[0m'); + process.exit(1); } const PREBUILD_DIR = path.join(__dirname, '..', 'prebuilds', `${process.platform}-${process.arch}`);