diff --git a/eng/common/pipelines/templates/steps/verify-changelog.yml b/eng/common/pipelines/templates/steps/verify-changelog.yml index b1e34c662..4c4fefbda 100644 --- a/eng/common/pipelines/templates/steps/verify-changelog.yml +++ b/eng/common/pipelines/templates/steps/verify-changelog.yml @@ -14,7 +14,7 @@ parameters: - name: Condition type: string default: succeeded() -- name: GroupId +- name: PackageInfoFilePath type: string default: '' @@ -26,7 +26,7 @@ steps: -PackageName '${{ parameters.PackageName }}' -ServiceDirectory '${{ coalesce(parameters.ServiceDirectory, parameters.ServiceName) }}' -ForRelease $${{ parameters.ForRelease }} - -GroupId '${{ parameters.GroupId }}' + -PackageInfoFilePath '${{ parameters.PackageInfoFilePath }}' pwsh: true workingDirectory: $(Pipeline.Workspace) displayName: Verify ChangeLogEntry for ${{ parameters.PackageName }} diff --git a/eng/common/scripts/Helpers/Package-Helpers.ps1 b/eng/common/scripts/Helpers/Package-Helpers.ps1 index f157d354a..dc77d2492 100644 --- a/eng/common/scripts/Helpers/Package-Helpers.ps1 +++ b/eng/common/scripts/Helpers/Package-Helpers.ps1 @@ -267,24 +267,4 @@ function Split-ArrayIntoBatches { return , $batches } -# Get the full package name based on packageInfo properties -# Returns Group+ArtifactName if Group exists and has a value, otherwise returns Name -# If UseColonSeparator switch is enabled, returns Group:ArtifactName format (colon separator) -function Get-FullPackageName { - param ( - [Parameter(Mandatory=$true)] - [PSCustomObject]$PackageInfo, - [switch]$UseColonSeparator - ) - - if ($PackageInfo.PSObject.Members.Name -contains "Group") { - $groupId = $PackageInfo.Group - if ($groupId) { - if ($UseColonSeparator) { - return "${groupId}:$($PackageInfo.Name)" - } - return "${groupId}+$($PackageInfo.Name)" - } - } - return $PackageInfo.Name -} + diff --git a/eng/common/scripts/Package-Properties.ps1 b/eng/common/scripts/Package-Properties.ps1 index dcab4e721..7704bd04c 100644 --- a/eng/common/scripts/Package-Properties.ps1 +++ b/eng/common/scripts/Package-Properties.ps1 @@ -587,3 +587,25 @@ function Get-PkgPropsForEntireService ($serviceDirectoryPath) { return $projectProps } + +# Get the full package name based on packageInfo properties +# Returns Group+ArtifactName if Group exists and has a value, otherwise returns Name +# If UseColonSeparator switch is enabled, returns Group:ArtifactName format (colon separator) +function Get-FullPackageName { + param ( + [Parameter(Mandatory=$true)] + [PSCustomObject]$PackageInfo, + [switch]$UseColonSeparator + ) + + if ($PackageInfo.PSObject.Members.Name -contains "Group") { + $groupId = $PackageInfo.Group + if ($groupId) { + if ($UseColonSeparator) { + return "${groupId}:$($PackageInfo.Name)" + } + return "${groupId}+$($PackageInfo.Name)" + } + } + return $PackageInfo.Name +} diff --git a/eng/common/scripts/Verify-ChangeLog.ps1 b/eng/common/scripts/Verify-ChangeLog.ps1 index f8f9870eb..e657b531e 100644 --- a/eng/common/scripts/Verify-ChangeLog.ps1 +++ b/eng/common/scripts/Verify-ChangeLog.ps1 @@ -14,7 +14,7 @@ param ( [string]$PackageName, [string]$ServiceDirectory, [boolean]$ForRelease = $False, - [String]$GroupId + [String]$PackageInfoFilePath ) Set-StrictMode -Version 3 @@ -27,6 +27,15 @@ if ($ChangeLogLocation -and $VersionString) } else { + # Load package info to extract GroupId if available + $GroupId = $null + if ($PackageInfoFilePath -and (Test-Path $PackageInfoFilePath)) { + $packageInfoJson = Get-Content $PackageInfoFilePath | ConvertFrom-Json + if ($packageInfoJson.PSObject.Properties.Name -contains "Group") { + $GroupId = $packageInfoJson.Group + } + } + $PackageProp = Get-PkgProperties -PackageName $PackageName -ServiceDirectory $ServiceDirectory -GroupId $GroupId $validChangeLog = Confirm-ChangeLogEntry -ChangeLogLocation $PackageProp.ChangeLogPath -VersionString $PackageProp.Version -ForRelease $ForRelease }