11
11
This script helps to mark release plan completion by finding the active release plans for a package name
12
12
13
13
. 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.
15
15
#>
16
16
17
17
Set-StrictMode - Version 3
@@ -25,34 +25,45 @@ if (-Not (Test-Path $PackageInfoFilePath))
25
25
Write-Host " Package information file path $ ( $PackageInfoFilePath ) is invalid."
26
26
exit 0
27
27
}
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
- }
37
28
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 )
42
30
{
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
+ }
46
49
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 ."
53
62
}
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