From 247d23e8dda826ae2dbcd742d856384650a8d197 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 18 Nov 2024 12:57:29 -0800 Subject: [PATCH] Sync eng/common directory with azure-sdk-tools for PR 9393 (#31815) Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/9393 See [eng/common workflow](https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/README.md#workflow) Co-authored-by: Scott Beddall --- .../scripts/job-matrix/Create-PrJobMatrix.ps1 | 16 +++++++++------- .../scripts/job-matrix/job-matrix-functions.ps1 | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/eng/common/scripts/job-matrix/Create-PrJobMatrix.ps1 b/eng/common/scripts/job-matrix/Create-PrJobMatrix.ps1 index 03fc6422e3a..1d86cfcd79d 100644 --- a/eng/common/scripts/job-matrix/Create-PrJobMatrix.ps1 +++ b/eng/common/scripts/job-matrix/Create-PrJobMatrix.ps1 @@ -90,31 +90,33 @@ foreach ($matrixBatchKey in $matrixBatchesByConfig.Keys) { $packageBatches = Split-ArrayIntoBatches -InputArray $matrixBatch -BatchSize $BATCHSIZE - # we only need to modify the generated job name if there is more than one matrix config or batch in the matrix - $matrixSuffixNecessary = $matrixConfigs.Count -gt 1 + # we only need to modify the generated job name if there is more than one matrix config + batch + $matrixSuffixNecessary = $matrixBatchesByConfig.Keys.Count -gt 1 $batchSuffixNecessary = $packageBatches.Length -gt 1 $batchCounter = 1 foreach ($batch in $packageBatches) { + $namesForBatch = ($batch | ForEach-Object { $_.ArtifactName }) -join "," # to understand this iteration, one must understand that the matrix is a list of hashtables, each with a couple keys: # [ # { "name": "jobname", "parameters": { matrixSetting1: matrixValue1, ...} }, # ] foreach ($matrixOutputItem in $matrixResults) { - $namesForBatch = ($batch | ForEach-Object { $_.ArtifactName }) -join "," + # we need to clone this, as each item is an object with possible children + $outputItem = $matrixOutputItem | ConvertTo-Json -Depth 100 | ConvertFrom-Json -AsHashtable # we just need to iterate across them, grab the parameters hashtable, and add the new key # if there is more than one batch, we will need to add a suffix including the batch name to the job name - $matrixOutputItem["parameters"]["$PRMatrixSetting"] = $namesForBatch + $outputItem["parameters"]["$PRMatrixSetting"] = $namesForBatch if ($matrixSuffixNecessary) { - $matrixOutputItem["name"] = $matrixOutputItem["name"] + $matrixConfig.Name + $outputItem["name"] = $outputItem["name"] + "_" + $matrixConfig.Name } if ($batchSuffixNecessary) { - $matrixOutputItem["name"] = $matrixOutputItem["name"] + "b$batchCounter" + $outputItem["name"] = $outputItem["name"] + "_b$batchCounter" } - $OverallResult += $matrixOutputItem + $OverallResult += $outputItem } $batchCounter += 1 } diff --git a/eng/common/scripts/job-matrix/job-matrix-functions.ps1 b/eng/common/scripts/job-matrix/job-matrix-functions.ps1 index 0693f7983f1..e271d0f21e3 100644 --- a/eng/common/scripts/job-matrix/job-matrix-functions.ps1 +++ b/eng/common/scripts/job-matrix/job-matrix-functions.ps1 @@ -490,7 +490,7 @@ function CloneOrderedDictionary([System.Collections.Specialized.OrderedDictionar function SerializePipelineMatrix([Array]$matrix) { $pipelineMatrix = [Ordered]@{} foreach ($entry in $matrix) { - if ($pipelineMatrix.Contains($entry.Name)) { + if ($pipelineMatrix.Contains($entry.name)) { Write-Warning "Found duplicate configurations for job `"$($entry.name)`". Multiple values may have been replaced with the same value." continue }