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
1717Set-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