From 164b5316f7c7cd8abc384be1cd0454e08e832be5 Mon Sep 17 00:00:00 2001 From: Amr Mesbah Date: Thu, 2 Jan 2025 12:07:04 -0800 Subject: [PATCH 1/3] Add Mac Arm64 support --- BuildConfigGen/dev.sh | 2 +- make-util.js | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/BuildConfigGen/dev.sh b/BuildConfigGen/dev.sh index 32335148cd21..1204bf33dba3 100755 --- a/BuildConfigGen/dev.sh +++ b/BuildConfigGen/dev.sh @@ -32,7 +32,7 @@ function detect_platform_and_runtime_id () fi elif [[ "$CURRENT_PLATFORM" == 'darwin' ]]; then - DETECTED_RUNTIME_ID='osx-x64' + DETECTED_RUNTIME_ID='osx-$(uname -m)' fi } diff --git a/make-util.js b/make-util.js index bb91e0a6e03c..524414d1dbbc 100644 --- a/make-util.js +++ b/make-util.js @@ -377,8 +377,13 @@ var installNodeAsync = async function (nodeVersion) { var nodeUrl = 'https://nodejs.org/dist'; switch (platform) { case 'darwin': - var nodeArchivePath = await downloadArchiveAsync(nodeUrl + '/' + nodeVersion + '/node-' + nodeVersion + '-darwin-x64.tar.gz'); - addPath(path.join(nodeArchivePath, 'node-' + nodeVersion + '-darwin-x64', 'bin')); + var arch = run('uname -m') + if (nodeVersion <= versions[14]) { // arm64 support started since node16 + arch = 'x64' + } + + var nodeArchivePath = await downloadArchiveAsync(nodeUrl + '/' + nodeVersion + '/node-' + nodeVersion + '-darwin-' + arch + '.tar.gz'); + addPath(path.join(nodeArchivePath, 'node-' + nodeVersion + '-darwin-' + arch, 'bin')) break; case 'linux': var nodeArchivePath = await downloadArchiveAsync(nodeUrl + '/' + nodeVersion + '/node-' + nodeVersion + '-linux-x64.tar.gz'); From 784389ca2e88028e117500821cb23a8ffa644479 Mon Sep 17 00:00:00 2001 From: Amr Mesbah Date: Thu, 2 Jan 2025 12:32:49 -0800 Subject: [PATCH 2/3] Node version comparison --- BuildConfigGen/dev.sh | 2 +- make-util.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/BuildConfigGen/dev.sh b/BuildConfigGen/dev.sh index 1204bf33dba3..c0096cd5fce8 100755 --- a/BuildConfigGen/dev.sh +++ b/BuildConfigGen/dev.sh @@ -32,7 +32,7 @@ function detect_platform_and_runtime_id () fi elif [[ "$CURRENT_PLATFORM" == 'darwin' ]]; then - DETECTED_RUNTIME_ID='osx-$(uname -m)' + DETECTED_RUNTIME_ID="osx-$(uname -m)" fi } diff --git a/make-util.js b/make-util.js index 524414d1dbbc..3fd03b8f5831 100644 --- a/make-util.js +++ b/make-util.js @@ -378,7 +378,8 @@ var installNodeAsync = async function (nodeVersion) { switch (platform) { case 'darwin': var arch = run('uname -m') - if (nodeVersion <= versions[14]) { // arm64 support started since node16 + var nodeMajorVersionNumber = parseInt(nodeVersion.match(/\d+/)[0], 10); + if (nodeMajorVersionNumber < 16) { // arm64 support started since node16 arch = 'x64' } From 29982cbe2d4d142f02eb70d1abeda49b659272bf Mon Sep 17 00:00:00 2001 From: Amr Mesbah Date: Wed, 8 Jan 2025 09:47:40 -0800 Subject: [PATCH 3/3] Add fallback version when ParseInt fails --- _generated/UsePythonVersionV0_Node20/.npmrc | 4 ++++ make-util.js | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/_generated/UsePythonVersionV0_Node20/.npmrc b/_generated/UsePythonVersionV0_Node20/.npmrc index 5fca0d518be7..d5c7fef620a3 100644 --- a/_generated/UsePythonVersionV0_Node20/.npmrc +++ b/_generated/UsePythonVersionV0_Node20/.npmrc @@ -1 +1,5 @@ scripts-prepend-node-path=true + +registry=https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ + +always-auth=true \ No newline at end of file diff --git a/make-util.js b/make-util.js index 3fd03b8f5831..4d105614298c 100644 --- a/make-util.js +++ b/make-util.js @@ -379,6 +379,10 @@ var installNodeAsync = async function (nodeVersion) { case 'darwin': var arch = run('uname -m') var nodeMajorVersionNumber = parseInt(nodeVersion.match(/\d+/)[0], 10); + if (isNaN(nodeMajorVersionNumber)) { + console.debug("Couldn't parse Node version; falling back to use version Node 14."); + nodeMajorVersionNumber = 14 + } if (nodeMajorVersionNumber < 16) { // arm64 support started since node16 arch = 'x64' }