diff --git a/eng/common/pipelines/templates/steps/save-package-properties.yml b/eng/common/pipelines/templates/steps/save-package-properties.yml index 65966d1c6f1..d3a1177aced 100644 --- a/eng/common/pipelines/templates/steps/save-package-properties.yml +++ b/eng/common/pipelines/templates/steps/save-package-properties.yml @@ -41,11 +41,26 @@ steps: pwsh: true workingDirectory: '${{ parameters.WorkingDirectory }}' + - task: Powershell@2 + displayName: Save package properties filtered for PR + inputs: + filePath: ${{ parameters.ScriptDirectory }}/Save-Package-Properties.ps1 + arguments: > + -PrDiff '${{ parameters.DiffDirectory }}/diff.json' + -OutDirectory '${{ parameters.PackageInfoDirectory }}' + pwsh: true + workingDirectory: '${{ parameters.WorkingDirectory }}' + # When running in PR mode, we want the detected changed services to be attached to the build as tags. # However, the public identity does not have the permissions to attach tags to the build. # Instead, we will save the changed services to a file, attach it as an attachment for PiplineWitness to pick up and utilize. + # - pwsh: | - $changedServices = (Get-Content -Path '${{ parameters.DiffDirectory }}/diff.json' -Raw | ConvertFrom-Json).ChangedServices + $changedPackages = Get-ChildItem -Recurse -Filter *.json "${{ parameters.PackageInfoDirectory }}" ` + | ForEach-Object { Get-Content -Raw $_ | ConvertFrom-Json } + + $changedServices = $changedPackages | Where-Object { $_.IncludedForValidation -eq $false } ` + | Select-Object -ExpandProperty ServiceDirectory | Sort-Object -Unique if ($changedServices) { Write-Host "Attaching changed service names to the build for additional tag generation." @@ -55,15 +70,6 @@ steps: displayName: Upload tags.json with changed services workingDirectory: '${{ parameters.WorkingDirectory }}' - - task: Powershell@2 - displayName: Save package properties filtered for PR - inputs: - filePath: ${{ parameters.ScriptDirectory }}/Save-Package-Properties.ps1 - arguments: > - -PrDiff '${{ parameters.DiffDirectory }}/diff.json' - -OutDirectory '${{ parameters.PackageInfoDirectory }}' - pwsh: true - workingDirectory: '${{ parameters.WorkingDirectory }}' - ${{ else }}: - task: Powershell@2 displayName: Save package properties