From 7988bf410da9617e6c2303a83172f6ff571c10d8 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Mon, 8 Nov 2021 17:55:50 -0500 Subject: [PATCH 01/11] DEbug keytar install --- eng/pipelines/templates/steps/use-node-test-version.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index 9b6a151a9e0f..5c7a421f6fe6 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -8,6 +8,7 @@ steps: # Packages with native dependencies must be reinstalled after changing Node versions - pwsh: | + Get-ChildItem "common/temp/node_modules/.pnpm/node_modules" -Name $nativeDependencySymlinkPaths = "common/temp/node_modules/.pnpm/node_modules/keytar,common/temp/node_modules/.pnpm/node_modules/@azure/msal-node-extensions" $currentLocation = Get-Location $dependencySymlinks = $nativeDependencySymlinkPaths.Split(",") From c67c05fa3bf23236c79aa35f696290be0ae5916d Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Mon, 8 Nov 2021 18:42:39 -0500 Subject: [PATCH 02/11] DEbug keytar install --- eng/pipelines/templates/steps/use-node-test-version.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index 5c7a421f6fe6..41fad438ed45 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -63,4 +63,3 @@ steps: } displayName: Reinstall native dependencies - condition: ne(variables['NodeTestVersion'], variables['NodeVersion']) From e1b561c021d19e2ef2d7f628210c89679ff21644 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Mon, 8 Nov 2021 19:15:56 -0500 Subject: [PATCH 03/11] DEbug keytar install --- eng/pipelines/templates/steps/use-node-test-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index 41fad438ed45..3f14743e6a19 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -8,7 +8,7 @@ steps: # Packages with native dependencies must be reinstalled after changing Node versions - pwsh: | - Get-ChildItem "common/temp/node_modules/.pnpm/node_modules" -Name + Get-ChildItem "common/temp/node_modules/.pnpm/node_modules/keytar" -Name $nativeDependencySymlinkPaths = "common/temp/node_modules/.pnpm/node_modules/keytar,common/temp/node_modules/.pnpm/node_modules/@azure/msal-node-extensions" $currentLocation = Get-Location $dependencySymlinks = $nativeDependencySymlinkPaths.Split(",") From 3093d4617715f701707d030a95e1ea35820be044 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Mon, 8 Nov 2021 20:44:35 -0500 Subject: [PATCH 04/11] More debugging --- eng/pipelines/templates/steps/use-node-test-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index 3f14743e6a19..308afed02941 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -8,7 +8,7 @@ steps: # Packages with native dependencies must be reinstalled after changing Node versions - pwsh: | - Get-ChildItem "common/temp/node_modules/.pnpm/node_modules/keytar" -Name + Get-ChildItem "common/temp/node_modules/.pnpm" -Name $nativeDependencySymlinkPaths = "common/temp/node_modules/.pnpm/node_modules/keytar,common/temp/node_modules/.pnpm/node_modules/@azure/msal-node-extensions" $currentLocation = Get-Location $dependencySymlinks = $nativeDependencySymlinkPaths.Split(",") From 3d02807cc5d01ef88832415248a065d4d8032bd4 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Mon, 8 Nov 2021 21:13:00 -0500 Subject: [PATCH 05/11] More debugging with possible solution --- eng/pipelines/templates/steps/use-node-test-version.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index 308afed02941..51deeb7325c2 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -26,6 +26,11 @@ steps: # Example: common/temp/node_modules/.pnpm/keytar@5.6.0/node_modules/keytar $targetPath = (Get-Item $symlink).Target + if ($targetPath.StartsWith("..")) + { + $targetPath = Join-Path "common/temp/node_modules/.pnpm/node_modules" $targetPath -Resolve + Write-Host "Target Path: $($targetPath)" + } # Need to run "npm install" at path containing "node_modules" folder # Example: common/temp/node_modules/.pnpm/keytar@5.6.0 $packageInstallPath = Join-Path $targetPath "../.." From cea3550f3909700180844842704e42774fac4867 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Mon, 8 Nov 2021 21:41:01 -0500 Subject: [PATCH 06/11] Generate absolute path for symlink to reinstall native dependency --- .../templates/steps/use-node-test-version.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index 51deeb7325c2..349ce0a87d4a 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -8,7 +8,6 @@ steps: # Packages with native dependencies must be reinstalled after changing Node versions - pwsh: | - Get-ChildItem "common/temp/node_modules/.pnpm" -Name $nativeDependencySymlinkPaths = "common/temp/node_modules/.pnpm/node_modules/keytar,common/temp/node_modules/.pnpm/node_modules/@azure/msal-node-extensions" $currentLocation = Get-Location $dependencySymlinks = $nativeDependencySymlinkPaths.Split(",") @@ -26,11 +25,16 @@ steps: # Example: common/temp/node_modules/.pnpm/keytar@5.6.0/node_modules/keytar $targetPath = (Get-Item $symlink).Target + Write-Host "Target of symlink : $($targetPath)" + # pnpm v6 replaces '/' in package names with '+' to reduce nesting directory in virtual store so we need to + # change it back + $targetPath = $targetPath.Replace("+", "/") if ($targetPath.StartsWith("..")) { $targetPath = Join-Path "common/temp/node_modules/.pnpm/node_modules" $targetPath -Resolve Write-Host "Target Path: $($targetPath)" } + # Need to run "npm install" at path containing "node_modules" folder # Example: common/temp/node_modules/.pnpm/keytar@5.6.0 $packageInstallPath = Join-Path $targetPath "../.." @@ -45,10 +49,6 @@ steps: $packageAtVersion = Split-Path -Leaf $packageInstallPath - # pnpm v6 replaces '/' in package names with '+' to reduce nesting directory in virtual store so we need to - # change it back - $packageAtVersion = $packageAtVersion.Replace("+", "/") - # Check if package has org name. for e.g @azure/msal-node-enxtensions # This returns either @azure or .pnpm( if no org is present) $packageParentName = Split-path -Leaf (Split-Path -Parent -Resolve $packageInstallPath) From 87be2ae11a1310f0cc6104adfabcfbd0eabcb9d3 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Mon, 8 Nov 2021 21:57:13 -0500 Subject: [PATCH 07/11] Additional fix --- eng/pipelines/templates/steps/use-node-test-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index 349ce0a87d4a..2cfdf3b1b897 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -31,7 +31,7 @@ steps: $targetPath = $targetPath.Replace("+", "/") if ($targetPath.StartsWith("..")) { - $targetPath = Join-Path "common/temp/node_modules/.pnpm/node_modules" $targetPath -Resolve + $targetPath = Join-Path $symlink ".." $targetPath -Resolve Write-Host "Target Path: $($targetPath)" } From cfa341010a881d89ea751f5a867b875d72e1e8c2 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Mon, 8 Nov 2021 22:18:32 -0500 Subject: [PATCH 08/11] Additional fix --- eng/pipelines/templates/steps/use-node-test-version.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index 2cfdf3b1b897..d03fe86b6c0a 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -24,11 +24,7 @@ steps: # Map from the symlink path to the target path (npm has issues installing into symlink dirs) # Example: common/temp/node_modules/.pnpm/keytar@5.6.0/node_modules/keytar $targetPath = (Get-Item $symlink).Target - Write-Host "Target of symlink : $($targetPath)" - # pnpm v6 replaces '/' in package names with '+' to reduce nesting directory in virtual store so we need to - # change it back - $targetPath = $targetPath.Replace("+", "/") if ($targetPath.StartsWith("..")) { $targetPath = Join-Path $symlink ".." $targetPath -Resolve @@ -48,7 +44,10 @@ steps: } $packageAtVersion = Split-Path -Leaf $packageInstallPath - + # pnpm v6 replaces '/' in package names with '+' to reduce nesting directory in virtual store so we need to + # change it back + $packageAtVersion = $packageAtVersion.Replace("+", "/") + # Check if package has org name. for e.g @azure/msal-node-enxtensions # This returns either @azure or .pnpm( if no org is present) $packageParentName = Split-path -Leaf (Split-Path -Parent -Resolve $packageInstallPath) From 4e8fcd28e64001ebd7847f141da9cde25dffa722 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Tue, 9 Nov 2021 10:13:36 -0500 Subject: [PATCH 09/11] Add step condition and remvoe empty line --- eng/pipelines/templates/steps/use-node-test-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index d03fe86b6c0a..fe5efc35bdb0 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -47,7 +47,6 @@ steps: # pnpm v6 replaces '/' in package names with '+' to reduce nesting directory in virtual store so we need to # change it back $packageAtVersion = $packageAtVersion.Replace("+", "/") - # Check if package has org name. for e.g @azure/msal-node-enxtensions # This returns either @azure or .pnpm( if no org is present) $packageParentName = Split-path -Leaf (Split-Path -Parent -Resolve $packageInstallPath) @@ -67,3 +66,4 @@ steps: } displayName: Reinstall native dependencies + condition: and(succeeded(),ne(variables['NodeTestVersion'], variables['NodeVersion'])) From b07de395a9cc72ccf4bbbeb478dc8b766b2e5886 Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Tue, 9 Nov 2021 13:09:32 -0500 Subject: [PATCH 10/11] Changes as per review comments --- eng/pipelines/templates/steps/use-node-test-version.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index fe5efc35bdb0..b9cafaf8a4aa 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -23,13 +23,9 @@ steps: } # Map from the symlink path to the target path (npm has issues installing into symlink dirs) # Example: common/temp/node_modules/.pnpm/keytar@5.6.0/node_modules/keytar - $targetPath = (Get-Item $symlink).Target + $symlinkInfo = Get-Item $symlink + $targetPath = [IO.Path]::Combine($symlinkInfo.Parent, $symlinkInfo.Target) Write-Host "Target of symlink : $($targetPath)" - if ($targetPath.StartsWith("..")) - { - $targetPath = Join-Path $symlink ".." $targetPath -Resolve - Write-Host "Target Path: $($targetPath)" - } # Need to run "npm install" at path containing "node_modules" folder # Example: common/temp/node_modules/.pnpm/keytar@5.6.0 From 41d05b1c73aeee54ae2068fc398e8e8ec907011d Mon Sep 17 00:00:00 2001 From: Praveen Kuttappan Date: Tue, 9 Nov 2021 13:13:15 -0500 Subject: [PATCH 11/11] More review changes --- eng/pipelines/templates/steps/use-node-test-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/templates/steps/use-node-test-version.yml b/eng/pipelines/templates/steps/use-node-test-version.yml index b9cafaf8a4aa..b8c46ca79cbb 100644 --- a/eng/pipelines/templates/steps/use-node-test-version.yml +++ b/eng/pipelines/templates/steps/use-node-test-version.yml @@ -40,6 +40,7 @@ steps: } $packageAtVersion = Split-Path -Leaf $packageInstallPath + # pnpm v6 replaces '/' in package names with '+' to reduce nesting directory in virtual store so we need to # change it back $packageAtVersion = $packageAtVersion.Replace("+", "/") @@ -62,4 +63,3 @@ steps: } displayName: Reinstall native dependencies - condition: and(succeeded(),ne(variables['NodeTestVersion'], variables['NodeVersion']))