...
1
2[CmdletBinding()]
3param(
4 [Parameter(Mandatory=$true)]
5 [string]$language,
6 [Parameter(Mandatory=$true)]
7 [string]$packageName,
8 [Parameter(Mandatory=$true)]
9 [string]$version,
10 [string]$plannedDate,
11 [string]$serviceName = $null,
12 [string]$packageDisplayName = $null,
13 [string]$packageRepoPath = "NA",
14 [string]$packageType = "client",
15 [string]$packageNewLibrary = "true",
16 [string]$devops_pat = $env:DEVOPS_PAT
17)
18#Requires -Version 6.0
19Set-StrictMode -Version 3
20
21if (!(Get-Command az -ErrorAction SilentlyContinue)) {
22 Write-Error 'You must have the Azure CLI installed: https://aka.ms/azure-cli'
23 exit 1
24}
25
26az account show *> $null
27if (!$?) {
28 Write-Host 'Running az login...'
29 az login *> $null
30}
31
32az extension show -n azure-devops *> $null
33if (!$?){
34 Write-Host 'Installing azure-devops extension'
35 az extension add --name azure-devops
36}
37
38. (Join-Path $PSScriptRoot SemVer.ps1)
39. (Join-Path $PSScriptRoot Helpers DevOps-WorkItem-Helpers.ps1)
40
41CheckDevOpsAccess
42
43$parsedNewVersion = [AzureEngSemanticVersion]::new($version)
44$state = "In Release"
45$releaseType = $parsedNewVersion.VersionType
46$versionMajorMinor = "" + $parsedNewVersion.Major + "." + $parsedNewVersion.Minor
47
48$packageInfo = [PSCustomObject][ordered]@{
49 Package = $packageName
50 DisplayName = $packageDisplayName
51 ServiceName = $serviceName
52 RepoPath = $packageRepoPath
53 Type = $packageType
54 New = $packageNewLibrary
55};
56
57if (!$plannedDate) {
58 $plannedDate = Get-Date -Format "MM/dd/yyyy"
59}
60
61$plannedVersions = @(
62 [PSCustomObject][ordered]@{
63 Type = $releaseType
64 Version = $version
65 Date = $plannedDate
66 }
67)
68
69$workItem = FindOrCreateClonePackageWorkItem $language $packageInfo $versionMajorMinor -allowPrompt $true -outputCommand $false
70
71if (!$workItem) {
72 Write-Host "Something failed as we don't have a work-item so exiting."
73 exit 1
74}
75
76Write-Host "Updated or created a release work item for a package release with the following properties:"
77Write-Host " Lanuage: $($workItem.fields['Custom.Language'])"
78Write-Host " Version: $($workItem.fields['Custom.PackageVersionMajorMinor'])"
79Write-Host " Package: $($workItem.fields['Custom.Package'])"
80Write-Host " AssignedTo: $($workItem.fields['System.AssignedTo']["uniqueName"])"
81Write-Host " PackageDisplayName: $($workItem.fields['Custom.PackageDisplayName'])"
82Write-Host " ServiceName: $($workItem.fields['Custom.ServiceName'])"
83Write-Host " PackageType: $($workItem.fields['Custom.PackageType'])"
84Write-Host ""
85Write-Host "Marking item [$($workItem.id)]$($workItem.fields['System.Title']) as '$state' for '$releaseType'"
86$updatedWI = UpdatePackageWorkItemReleaseState -id $workItem.id -state "In Release" -releaseType $releaseType -outputCommand $false
87$updatedWI = UpdatePackageVersions $workItem -plannedVersions $plannedVersions
88
89Write-Host "Release tracking item is at https://dev.azure.com/azure-sdk/Release/_workitems/edit/$($updatedWI.id)/"
View as plain text