Skip to content

Commit b90222b

Browse files
authored
Merge c32182a into 8df21a0
2 parents 8df21a0 + c32182a commit b90222b

File tree

1 file changed

+39
-28
lines changed

1 file changed

+39
-28
lines changed

eng/common/scripts/Mark-ReleasePlanCompletion.ps1

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ param(
1111
This script helps to mark release plan completion by finding the active release plans for a package name
1212
1313
.PARAMETER PackageInfoFilePath
14-
The path to the package information file (required)
14+
The path to the package information file (required) or path to the directory containing package information files.
1515
#>
1616

1717
Set-StrictMode -Version 3
@@ -25,34 +25,45 @@ if (-Not (Test-Path $PackageInfoFilePath))
2525
Write-Host "Package information file path $($PackageInfoFilePath) is invalid."
2626
exit 0
2727
}
28-
# Get package info from json file created before updating version to daily dev
29-
$pkgInfo = Get-Content $PackageInfoFilePath | ConvertFrom-Json
30-
$PackageVersion = $pkgInfo.Version
31-
$PackageName = $pkgInfo.Name
32-
if (!$PackageName -or !$PackageVersion)
33-
{
34-
Write-Host "Package name or version is not available in the package information file. Skipping the release plan status update for the package."
35-
exit 0
36-
}
3728

38-
# Check Azure DevOps Release Plan work items if LanguageShort is available
39-
Write-Host "Checking active release plan work items for package: $PackageName"
40-
$workItems = Get-ReleasePlanForPackage $PackageName
41-
if(!$workItems)
29+
function Process-Package([string]$packageInfoPath)
4230
{
43-
Write-Host "No active release plans found for package name: $PackageName."
44-
exit 0
45-
}
31+
# Get package info from json file created before updating version to daily dev
32+
$pkgInfo = Get-Content $packageInfoPath | ConvertFrom-Json
33+
$PackageVersion = $pkgInfo.Version
34+
$PackageName = $pkgInfo.Name
35+
if (!$PackageName -or !$PackageVersion)
36+
{
37+
Write-Host "Package name or version is not available in the package information file. Skipping the release plan status update for the package."
38+
return
39+
}
40+
41+
# Check Azure DevOps Release Plan work items
42+
Write-Host "Checking active release plan work items for package: $PackageName"
43+
$workItems = Get-ReleasePlanForPackage $PackageName
44+
if(!$workItems)
45+
{
46+
Write-Host "No active release plans found for package name: $PackageName."
47+
return
48+
}
4649

47-
$activeReleasePlan = $workItems
48-
if($workItems.Count -gt 1 -and ($workItems -is [System.Array]))
49-
{
50-
$concatenatedIds = ($workItems | Select-Object -ExpandProperty id) -join ','
51-
Write-Host "Multiple release plans found for package name: $PackageName with work item IDs: $concatenatedIds. Using the first release plan to update release status."
52-
$activeReleasePlan = $workItems[0]
50+
$activeReleasePlan = $workItems
51+
if($workItems.Count -gt 1 -and ($workItems -is [System.Array]))
52+
{
53+
$concatenatedIds = ($workItems | Select-Object -ExpandProperty id) -join ','
54+
Write-Host "Multiple release plans found for package name: $PackageName with work item IDs: $concatenatedIds. Using the first release plan to update release status."
55+
$activeReleasePlan = $workItems[0]
56+
}
57+
# Update release status
58+
Write-Host "Release plan work item ID: $($activeReleasePlan["id"])"
59+
Write-Host "Marking release completion for package, name: $PackageName version: $PackageVersion"
60+
Update-ReleaseStatusInReleasePlan $activeReleasePlan.id "Released" $PackageVersion
61+
Write-Host "Successfully marked release completion for package, name: $PackageName version: $PackageVersion."
5362
}
54-
# Update release status
55-
Write-Host "Release plan work item ID: $($activeReleasePlan["id"])"
56-
Write-Host "Marking release completion for package, name: $PackageName version: $PackageVersion"
57-
Update-ReleaseStatusInReleasePlan $activeReleasePlan.id "Released" $PackageVersion
58-
Write-Host "Successfully marked release completion for package, name: $PackageName version: $PackageVersion."
63+
64+
Write-Host "Finding all package info files in the path: $PackageInfoFilePath"
65+
# Get all package info file under the directory given in input param and process
66+
Get-ChildItem -Path $PackageInfoFilePath -Filter "*.json" | ForEach-Object {
67+
Write-Host "Processing package info file: $_"
68+
Process-Package $_.FullName
69+
}

0 commit comments

Comments
 (0)