From bb40ffa45939316c6c52d4b13000ed88834ba7cd Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Thu, 19 Mar 2026 15:33:04 +0000 Subject: [PATCH 01/11] update parameter name according to eng common --- sdk/identity/identity/managed-identity-matrix.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/identity/managed-identity-matrix.json b/sdk/identity/identity/managed-identity-matrix.json index 07c5ccc6d26b..2d94297e69b1 100644 --- a/sdk/identity/identity/managed-identity-matrix.json +++ b/sdk/identity/identity/managed-identity-matrix.json @@ -11,7 +11,7 @@ } }, "NodeTestVersion": "env:NODE_VERSION_LTS_MAINTENANCE", - "ArmTemplateParameters": "@{deployMIResources = $true}", + "AdditionalParameters": "@{deployMIResources = $true}", "TestType": "node:managed-identity", "TestResultsFiles": "**/test-results.xml" } From dc91d476996db87f73519a1c7df320af891eb6cd Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Thu, 19 Mar 2026 09:23:12 -0700 Subject: [PATCH 02/11] update name to arm --- sdk/identity/identity/managed-identity-matrix.json | 2 +- sdk/identity/test-resources-post.ps1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/identity/identity/managed-identity-matrix.json b/sdk/identity/identity/managed-identity-matrix.json index 2d94297e69b1..07c5ccc6d26b 100644 --- a/sdk/identity/identity/managed-identity-matrix.json +++ b/sdk/identity/identity/managed-identity-matrix.json @@ -11,7 +11,7 @@ } }, "NodeTestVersion": "env:NODE_VERSION_LTS_MAINTENANCE", - "AdditionalParameters": "@{deployMIResources = $true}", + "ArmTemplateParameters": "@{deployMIResources = $true}", "TestType": "node:managed-identity", "TestResultsFiles": "**/test-results.xml" } diff --git a/sdk/identity/test-resources-post.ps1 b/sdk/identity/test-resources-post.ps1 index 29cd66fa504d..5930f266bf0b 100644 --- a/sdk/identity/test-resources-post.ps1 +++ b/sdk/identity/test-resources-post.ps1 @@ -31,7 +31,7 @@ param( $RemainingArguments ) -if (!$AdditionalParameters['deployMIResources']) { +if (!$ArmTemplateParameters['deployMIResources']) { Write-Host "Skipping post-provisioning script because resources weren't deployed" return } From 337663ad33f2ddb00a9a655ee41f9164bb4d49a9 Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Fri, 20 Mar 2026 09:36:57 -0700 Subject: [PATCH 03/11] update name changes --- sdk/identity/identity/managed-identity-matrix.json | 2 +- sdk/identity/test-resources-post.ps1 | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sdk/identity/identity/managed-identity-matrix.json b/sdk/identity/identity/managed-identity-matrix.json index 07c5ccc6d26b..2d94297e69b1 100644 --- a/sdk/identity/identity/managed-identity-matrix.json +++ b/sdk/identity/identity/managed-identity-matrix.json @@ -11,7 +11,7 @@ } }, "NodeTestVersion": "env:NODE_VERSION_LTS_MAINTENANCE", - "ArmTemplateParameters": "@{deployMIResources = $true}", + "AdditionalParameters": "@{deployMIResources = $true}", "TestType": "node:managed-identity", "TestResultsFiles": "**/test-results.xml" } diff --git a/sdk/identity/test-resources-post.ps1 b/sdk/identity/test-resources-post.ps1 index 5930f266bf0b..60c6e40367a3 100644 --- a/sdk/identity/test-resources-post.ps1 +++ b/sdk/identity/test-resources-post.ps1 @@ -28,10 +28,13 @@ param( # Captures any arguments from eng/New-TestResources.ps1 not declared here (no parameter errors). [Parameter(ValueFromRemainingArguments = $true)] - $RemainingArguments + $RemainingArguments, + + [Parameter()] + [hashtable] $AdditionalParameters = @{} ) -if (!$ArmTemplateParameters['deployMIResources']) { +if (!$AdditionalParameters['deployMIResources']) { Write-Host "Skipping post-provisioning script because resources weren't deployed" return } From 8a8bb3bb68896c3a1b6f9ed41d4c9c44987c423c Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Fri, 20 Mar 2026 09:59:25 -0700 Subject: [PATCH 04/11] Try additional parameters --- sdk/identity/test-resources-post.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/test-resources-post.ps1 b/sdk/identity/test-resources-post.ps1 index 60c6e40367a3..f37fb24434ba 100644 --- a/sdk/identity/test-resources-post.ps1 +++ b/sdk/identity/test-resources-post.ps1 @@ -31,7 +31,7 @@ param( $RemainingArguments, [Parameter()] - [hashtable] $AdditionalParameters = @{} + [hashtable] $AdditionalParameters ) if (!$AdditionalParameters['deployMIResources']) { From aeaf324cc96e90f76209055eaf5556d6c7e1daaf Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Mon, 23 Mar 2026 20:28:54 +0000 Subject: [PATCH 05/11] update to using arm templates parameters --- eng/common/TestResources/New-TestResources.ps1 | 16 ++++++++++++++++ .../identity/managed-identity-matrix.json | 2 +- sdk/identity/identity/tests.yml | 2 +- sdk/identity/test-resources-post.ps1 | 7 ++----- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index 06fe2eb2034b..9a496beecb28 100755 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -127,6 +127,18 @@ param ( . $PSScriptRoot/TestResources-Helpers.ps1 . $PSScriptRoot/SubConfig-Helpers.ps1 +function TraceParameterSnapshot($step) { + Write-Verbose "[TraceParameterFlow] Step: $step" + Write-Verbose "[TraceParameterFlow] ArmTemplateParameters: $(SerializeForTrace $ArmTemplateParameters)" + Write-Verbose "[TraceParameterFlow] AdditionalParameters: $(SerializeForTrace $AdditionalParameters)" + Write-Verbose "[TraceParameterFlow] PSBoundParameters: $(SerializeForTrace $PSBoundParameters)" +} + +function TraceTemplateParameters($step, $templateParametersSnapshot) { + Write-Verbose "[TraceParameterFlow] Step: $step" + Write-Verbose "[TraceParameterFlow] templateParameters: $(SerializeForTrace $templateParametersSnapshot)" +} + $wellKnownTMETenants = @('70a036f6-8e4d-4615-bad6-149c02e7720d') # People keep passing this legacy parameter. Throw an error to save them future keystrokes @@ -687,6 +699,7 @@ try { } if (Test-Path $postDeploymentScript) { + TraceParameterSnapshot "Entered post-deployment script branch for '$postDeploymentScript'" if ($SelfContainedPostScript) { Log "Creating invokable post-deployment script '$SelfContainedPostScript' from '$postDeploymentScript'" @@ -709,10 +722,13 @@ $serialized # Set global variables that aren't always passed as parameters `$ResourceGroupName = `$parameters.ResourceGroupName `$AdditionalParameters = `$parameters.AdditionalParameters +`$ArmTemplateParameters = `$parameters.ArmTemplateParameters `$DeploymentOutputs = `$parameters.DeploymentOutputs $postDeploymentScript `@parameters "@ $outScript | Out-File $SelfContainedPostScript + Write-Verbose "[TraceParameterFlow] Step: Out script content before writing '$SelfContainedPostScript'" + Write-Verbose "[TraceParameterFlow] outScript: $outScript" } else { Log "Invoking post-deployment script '$postDeploymentScript'" &$postDeploymentScript -ResourceGroupName $ResourceGroupName -DeploymentOutputs $deploymentOutputs @PSBoundParameters diff --git a/sdk/identity/identity/managed-identity-matrix.json b/sdk/identity/identity/managed-identity-matrix.json index 2d94297e69b1..07c5ccc6d26b 100644 --- a/sdk/identity/identity/managed-identity-matrix.json +++ b/sdk/identity/identity/managed-identity-matrix.json @@ -11,7 +11,7 @@ } }, "NodeTestVersion": "env:NODE_VERSION_LTS_MAINTENANCE", - "AdditionalParameters": "@{deployMIResources = $true}", + "ArmTemplateParameters": "@{deployMIResources = $true}", "TestType": "node:managed-identity", "TestResultsFiles": "**/test-results.xml" } diff --git a/sdk/identity/identity/tests.yml b/sdk/identity/identity/tests.yml index ce97660fcbcb..2b1d4ecc8c63 100644 --- a/sdk/identity/identity/tests.yml +++ b/sdk/identity/identity/tests.yml @@ -22,7 +22,7 @@ extends: SKIP_SP_LIVE_TESTS: "true" ${{ if endsWith(variables['Build.DefinitionName'], 'weekly') }}: - AdditionalMatrixConfigs: + MatrixConfigs: - Name: Identity_msi_live_test_base Path: sdk/identity/identity/managed-identity-matrix.json Selection: sparse diff --git a/sdk/identity/test-resources-post.ps1 b/sdk/identity/test-resources-post.ps1 index f37fb24434ba..5930f266bf0b 100644 --- a/sdk/identity/test-resources-post.ps1 +++ b/sdk/identity/test-resources-post.ps1 @@ -28,13 +28,10 @@ param( # Captures any arguments from eng/New-TestResources.ps1 not declared here (no parameter errors). [Parameter(ValueFromRemainingArguments = $true)] - $RemainingArguments, - - [Parameter()] - [hashtable] $AdditionalParameters + $RemainingArguments ) -if (!$AdditionalParameters['deployMIResources']) { +if (!$ArmTemplateParameters['deployMIResources']) { Write-Host "Skipping post-provisioning script because resources weren't deployed" return } From d44bfd551f2e14ec00788c03c2b7aa4ef6ec6792 Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Mon, 23 Mar 2026 20:57:23 +0000 Subject: [PATCH 06/11] update script logging --- eng/common/TestResources/New-TestResources.ps1 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index 9a496beecb28..c77996322eb1 100755 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -127,6 +127,19 @@ param ( . $PSScriptRoot/TestResources-Helpers.ps1 . $PSScriptRoot/SubConfig-Helpers.ps1 +function SerializeForTrace($value) { + if ($null -eq $value) { + return '' + } + + try { + return ($value | ConvertTo-Json -Depth 20 -Compress) + } + catch { + return "" + } +} + function TraceParameterSnapshot($step) { Write-Verbose "[TraceParameterFlow] Step: $step" Write-Verbose "[TraceParameterFlow] ArmTemplateParameters: $(SerializeForTrace $ArmTemplateParameters)" From 525aa44a2d9166ad582824151dbe520b3de31f16 Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Tue, 24 Mar 2026 20:54:34 +0000 Subject: [PATCH 07/11] update additional parameters --- eng/pipelines/templates/jobs/live.tests.yml | 3 +++ sdk/identity/identity/managed-identity-matrix.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/templates/jobs/live.tests.yml b/eng/pipelines/templates/jobs/live.tests.yml index c747ca38affe..3708efd8ed02 100644 --- a/eng/pipelines/templates/jobs/live.tests.yml +++ b/eng/pipelines/templates/jobs/live.tests.yml @@ -61,6 +61,8 @@ jobs: - template: ../variables/globals.yml - name: ArmTemplateParameters value: '@{}' + - name: AdditionalParameters + value: '@{}' pool: name: $(Pool) @@ -101,6 +103,7 @@ jobs: ServiceDirectory: '${{ directory }}' SubscriptionConfiguration: $(SubscriptionConfiguration) ArmTemplateParameters: $(ArmTemplateParameters) + AdditionalParameters: $(AdditionalParameters) UseFederatedAuth: ${{ parameters.UseFederatedAuth }} PersistOidcToken: ${{ parameters.PersistOidcToken }} ServiceConnection: ${{ parameters.CloudConfig.ServiceConnection }} diff --git a/sdk/identity/identity/managed-identity-matrix.json b/sdk/identity/identity/managed-identity-matrix.json index 07c5ccc6d26b..2d94297e69b1 100644 --- a/sdk/identity/identity/managed-identity-matrix.json +++ b/sdk/identity/identity/managed-identity-matrix.json @@ -11,7 +11,7 @@ } }, "NodeTestVersion": "env:NODE_VERSION_LTS_MAINTENANCE", - "ArmTemplateParameters": "@{deployMIResources = $true}", + "AdditionalParameters": "@{deployMIResources = $true}", "TestType": "node:managed-identity", "TestResultsFiles": "**/test-results.xml" } From 018b55417c4422beeb0d871ad421c6712f1fd370 Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Tue, 24 Mar 2026 20:55:36 +0000 Subject: [PATCH 08/11] Undo matrix config changes --- .../TestResources/New-TestResources.ps1 | 29 ------------------- sdk/identity/identity/tests.yml | 2 +- 2 files changed, 1 insertion(+), 30 deletions(-) diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index c77996322eb1..06fe2eb2034b 100755 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -127,31 +127,6 @@ param ( . $PSScriptRoot/TestResources-Helpers.ps1 . $PSScriptRoot/SubConfig-Helpers.ps1 -function SerializeForTrace($value) { - if ($null -eq $value) { - return '' - } - - try { - return ($value | ConvertTo-Json -Depth 20 -Compress) - } - catch { - return "" - } -} - -function TraceParameterSnapshot($step) { - Write-Verbose "[TraceParameterFlow] Step: $step" - Write-Verbose "[TraceParameterFlow] ArmTemplateParameters: $(SerializeForTrace $ArmTemplateParameters)" - Write-Verbose "[TraceParameterFlow] AdditionalParameters: $(SerializeForTrace $AdditionalParameters)" - Write-Verbose "[TraceParameterFlow] PSBoundParameters: $(SerializeForTrace $PSBoundParameters)" -} - -function TraceTemplateParameters($step, $templateParametersSnapshot) { - Write-Verbose "[TraceParameterFlow] Step: $step" - Write-Verbose "[TraceParameterFlow] templateParameters: $(SerializeForTrace $templateParametersSnapshot)" -} - $wellKnownTMETenants = @('70a036f6-8e4d-4615-bad6-149c02e7720d') # People keep passing this legacy parameter. Throw an error to save them future keystrokes @@ -712,7 +687,6 @@ try { } if (Test-Path $postDeploymentScript) { - TraceParameterSnapshot "Entered post-deployment script branch for '$postDeploymentScript'" if ($SelfContainedPostScript) { Log "Creating invokable post-deployment script '$SelfContainedPostScript' from '$postDeploymentScript'" @@ -735,13 +709,10 @@ $serialized # Set global variables that aren't always passed as parameters `$ResourceGroupName = `$parameters.ResourceGroupName `$AdditionalParameters = `$parameters.AdditionalParameters -`$ArmTemplateParameters = `$parameters.ArmTemplateParameters `$DeploymentOutputs = `$parameters.DeploymentOutputs $postDeploymentScript `@parameters "@ $outScript | Out-File $SelfContainedPostScript - Write-Verbose "[TraceParameterFlow] Step: Out script content before writing '$SelfContainedPostScript'" - Write-Verbose "[TraceParameterFlow] outScript: $outScript" } else { Log "Invoking post-deployment script '$postDeploymentScript'" &$postDeploymentScript -ResourceGroupName $ResourceGroupName -DeploymentOutputs $deploymentOutputs @PSBoundParameters diff --git a/sdk/identity/identity/tests.yml b/sdk/identity/identity/tests.yml index 2b1d4ecc8c63..ce97660fcbcb 100644 --- a/sdk/identity/identity/tests.yml +++ b/sdk/identity/identity/tests.yml @@ -22,7 +22,7 @@ extends: SKIP_SP_LIVE_TESTS: "true" ${{ if endsWith(variables['Build.DefinitionName'], 'weekly') }}: - MatrixConfigs: + AdditionalMatrixConfigs: - Name: Identity_msi_live_test_base Path: sdk/identity/identity/managed-identity-matrix.json Selection: sparse From 23607cfb5215d993d9809705b30f55da85967c9c Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Tue, 24 Mar 2026 20:57:37 +0000 Subject: [PATCH 09/11] update test resoures script --- sdk/identity/test-resources-post.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/test-resources-post.ps1 b/sdk/identity/test-resources-post.ps1 index 5930f266bf0b..29cd66fa504d 100644 --- a/sdk/identity/test-resources-post.ps1 +++ b/sdk/identity/test-resources-post.ps1 @@ -31,7 +31,7 @@ param( $RemainingArguments ) -if (!$ArmTemplateParameters['deployMIResources']) { +if (!$AdditionalParameters['deployMIResources']) { Write-Host "Skipping post-provisioning script because resources weren't deployed" return } From d49eb52f91d822ee5559ce6d78652e213f740041 Mon Sep 17 00:00:00 2001 From: Minh-Anh Phan Date: Wed, 25 Mar 2026 10:53:28 -0700 Subject: [PATCH 10/11] update post script --- eng/pipelines/templates/jobs/live.tests.yml | 3 --- sdk/identity/identity/managed-identity-matrix.json | 2 +- sdk/identity/test-resources-post.ps1 | 4 ++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/templates/jobs/live.tests.yml b/eng/pipelines/templates/jobs/live.tests.yml index 3708efd8ed02..c747ca38affe 100644 --- a/eng/pipelines/templates/jobs/live.tests.yml +++ b/eng/pipelines/templates/jobs/live.tests.yml @@ -61,8 +61,6 @@ jobs: - template: ../variables/globals.yml - name: ArmTemplateParameters value: '@{}' - - name: AdditionalParameters - value: '@{}' pool: name: $(Pool) @@ -103,7 +101,6 @@ jobs: ServiceDirectory: '${{ directory }}' SubscriptionConfiguration: $(SubscriptionConfiguration) ArmTemplateParameters: $(ArmTemplateParameters) - AdditionalParameters: $(AdditionalParameters) UseFederatedAuth: ${{ parameters.UseFederatedAuth }} PersistOidcToken: ${{ parameters.PersistOidcToken }} ServiceConnection: ${{ parameters.CloudConfig.ServiceConnection }} diff --git a/sdk/identity/identity/managed-identity-matrix.json b/sdk/identity/identity/managed-identity-matrix.json index 2d94297e69b1..07c5ccc6d26b 100644 --- a/sdk/identity/identity/managed-identity-matrix.json +++ b/sdk/identity/identity/managed-identity-matrix.json @@ -11,7 +11,7 @@ } }, "NodeTestVersion": "env:NODE_VERSION_LTS_MAINTENANCE", - "AdditionalParameters": "@{deployMIResources = $true}", + "ArmTemplateParameters": "@{deployMIResources = $true}", "TestType": "node:managed-identity", "TestResultsFiles": "**/test-results.xml" } diff --git a/sdk/identity/test-resources-post.ps1 b/sdk/identity/test-resources-post.ps1 index 29cd66fa504d..9e554fe96e7f 100644 --- a/sdk/identity/test-resources-post.ps1 +++ b/sdk/identity/test-resources-post.ps1 @@ -31,9 +31,9 @@ param( $RemainingArguments ) -if (!$AdditionalParameters['deployMIResources']) { +if (![string]::IsNullOrEmpty($DeploymentOutputs['IDENTITY_WEBAPP_NAME'])) { Write-Host "Skipping post-provisioning script because resources weren't deployed" - return + exit } $MIClientId = $DeploymentOutputs['IDENTITY_USER_DEFINED_CLIENT_ID'] From d25887eb4e8f0f57fc93295eb665eb1e933663dc Mon Sep 17 00:00:00 2001 From: Ben Broderick Phillips Date: Wed, 25 Mar 2026 11:16:45 -0700 Subject: [PATCH 11/11] Fix/invert identity deployment conditional --- sdk/identity/test-resources-post.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/test-resources-post.ps1 b/sdk/identity/test-resources-post.ps1 index 9e554fe96e7f..ca1383fe2ee4 100644 --- a/sdk/identity/test-resources-post.ps1 +++ b/sdk/identity/test-resources-post.ps1 @@ -31,7 +31,7 @@ param( $RemainingArguments ) -if (![string]::IsNullOrEmpty($DeploymentOutputs['IDENTITY_WEBAPP_NAME'])) { +if ([string]::IsNullOrEmpty($DeploymentOutputs['IDENTITY_WEBAPP_NAME'])) { Write-Host "Skipping post-provisioning script because resources weren't deployed" exit }