Skip to content

Commit 91b3438

Browse files
Sync eng/common directory with azure-sdk-tools for PR 1251 (#16290)
* Add PrepareRelease Script * Generalize Prepare-Release Script * Update Update-ChangeLog.ps1 * Update Package-Properties.ps1 * Update Collect-ChangeLog Script * Update Collect-ChangeLog.ps1 and Collect-Unreleased.ps1 * Update GeneralReleaseNotesParser.ps1 script * Update Prepare-Release Script to use recent DevOps Scripts * Move Get-LanguageName to eng\common\scripts\Helpers\DevOps-WorkItem-Helpers.ps1, improve error message, add logic to detect changes made by prepare-release script * Use LanguageDisplayName, move Get-CSVMetadata to Package-Properties.ps1 Co-authored-by: Chidozie Ononiwu <[email protected]>
1 parent 5483b6a commit 91b3438

File tree

4 files changed

+141
-12
lines changed

4 files changed

+141
-12
lines changed

eng/common/docgeneration/Generate-DocIndex.ps1

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,6 @@ Param (
1010
)
1111
. "${PSScriptRoot}\..\scripts\common.ps1"
1212

13-
# Given the metadata url under https://github.com/Azure/azure-sdk/tree/master/_data/releases/latest,
14-
# the function will return the csv metadata back as part of response.
15-
function Get-CSVMetadata ([string]$MetadataUri) {
16-
$metadataResponse = Invoke-RestMethod -Uri $MetadataUri -method "GET" -MaximumRetryCount 3 -RetryIntervalSec 10 | ConvertFrom-Csv
17-
return $metadataResponse
18-
}
19-
2013
# Given the github io blob storage url and language regex,
2114
# the helper function will return a list of artifact names.
2215
function Get-BlobStorage-Artifacts($blobStorageUrl, $blobDirectoryRegex, $blobArtifactsReplacement) {

eng/common/scripts/Package-Properties.ps1

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function Get-PkgProperties
8484
if (!(Test-Path $serviceDirectoryPath))
8585
{
8686
LogError "Service Directory $ServiceDirectory does not exist"
87-
exit 1
87+
return $null
8888
}
8989

9090
$directoriesPresent = Get-ChildItem $serviceDirectoryPath -Directory
@@ -109,7 +109,8 @@ function Get-PkgProperties
109109
return $pkgProps
110110
}
111111
}
112-
LogError "Failed to retrive Properties for $PackageName"
112+
LogWarning "Failed to retrive Properties for $PackageName"
113+
return $null
113114
}
114115

115116
# Takes ServiceName and Repo Root Directory
@@ -152,21 +153,41 @@ function Get-AllPkgProperties ([string]$ServiceDirectory = $null)
152153
return $pkgPropsResult
153154
}
154155

156+
# Given the metadata url under https://github.com/Azure/azure-sdk/tree/master/_data/releases/latest,
157+
# the function will return the csv metadata back as part of response.
158+
function Get-CSVMetadata ([string]$MetadataUri=$MetadataUri)
159+
{
160+
$metadataResponse = Invoke-RestMethod -Uri $MetadataUri -method "GET" -MaximumRetryCount 3 -RetryIntervalSec 10 | ConvertFrom-Csv
161+
return $metadataResponse
162+
}
163+
155164
function Operate-OnPackages ($activePkgList, $ServiceDirectory, [Array]$pkgPropsResult)
156165
{
157166
foreach ($pkg in $activePkgList)
158167
{
168+
LogDebug "Operating on $($pkg["name"])"
159169
$pkgProps = Get-PkgProperties -PackageName $pkg["name"] -ServiceDirectory $ServiceDirectory
160-
$pkgPropsResult += $pkgProps
170+
if ($null -ne $pkgProps)
171+
{
172+
$pkgPropsResult += $pkgProps
173+
}
161174
}
162175
return $pkgPropsResult
163176
}
164177

165178
function Get-PkgListFromYml ($ciYmlPath)
166179
{
167180
$ProgressPreference = "SilentlyContinue"
168-
Register-PSRepository -Default -ErrorAction:SilentlyContinue
169-
Install-Module -Name powershell-yaml -RequiredVersion 0.4.1 -Force -Scope CurrentUser
181+
if ((Get-PSRepository | ?{$_.Name -eq "PSGallery"}).Count -eq 0)
182+
{
183+
Register-PSRepository -Default -ErrorAction:SilentlyContinue
184+
}
185+
186+
if ((Get-Module -ListAvailable -Name powershell-yaml | ?{$_.Version -eq "0.4.2"}).Count -eq 0)
187+
{
188+
Install-Module -Name powershell-yaml -RequiredVersion 0.4.2 -Force -Scope CurrentUser
189+
}
190+
170191
$ciYmlContent = Get-Content $ciYmlPath -Raw
171192
$ciYmlObj = ConvertFrom-Yaml $ciYmlContent -Ordered
172193
if ($ciYmlObj.Contains("stages"))
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
#Requires -Version 6.0
2+
3+
[CmdletBinding()]
4+
param(
5+
[Parameter(Mandatory=$true)]
6+
[string]$PackageName,
7+
[string]$ServiceDirectory,
8+
[string]$ReleaseDate, # Pass Date in the form MM/dd/yyyy"
9+
[string]$BuildType # For Java
10+
)
11+
12+
. ${PSScriptRoot}\common.ps1
13+
14+
function Get-ReleaseDay($baseDate)
15+
{
16+
# Find first friday
17+
while ($baseDate.DayOfWeek -ne 5)
18+
{
19+
$baseDate = $baseDate.AddDays(1)
20+
}
21+
22+
# Go to Tuesday
23+
$baseDate = $baseDate.AddDays(4)
24+
25+
return $baseDate;
26+
}
27+
28+
$ErrorPreference = 'Stop'
29+
30+
$packageProperties = Get-PkgProperties -PackageName $PackageName -ServiceDirectory $serviceDirectory
31+
32+
Write-Host "Source directory [ $serviceDirectory ]"
33+
34+
if (!$ReleaseDate)
35+
{
36+
$currentDate = Get-Date
37+
$thisMonthReleaseDate = Get-ReleaseDay((Get-Date -Day 1));
38+
$nextMonthReleaseDate = Get-ReleaseDay((Get-Date -Day 1).AddMonths(1));
39+
40+
if ($thisMonthReleaseDate -ge $currentDate)
41+
{
42+
# On track for this month release
43+
$ParsedReleaseDate = $thisMonthReleaseDate
44+
}
45+
elseif ($currentDate.Day -lt 15)
46+
{
47+
# Catching up to this month release
48+
$ParsedReleaseDate = $currentDate
49+
}
50+
else
51+
{
52+
# Next month release
53+
$ParsedReleaseDate = $nextMonthReleaseDate
54+
}
55+
}
56+
else
57+
{
58+
$ParsedReleaseDate = ([datetime]$ReleaseDate, 'MM/dd/yyyy', [Globalization.CultureInfo]::InvariantCulture)
59+
}
60+
61+
$releaseDateString = $ParsedReleaseDate.ToString("MM/dd/yyyy")
62+
$month = $ParsedReleaseDate.ToString("MMMM")
63+
64+
Write-Host
65+
Write-Host "Assuming release is in $month with release date $releaseDateString" -ForegroundColor Green
66+
67+
$currentProjectVersion = $packageProperties.Version
68+
69+
$newVersion = Read-Host -Prompt "Input the new version, or press Enter to use use current project version '$currentProjectVersion'"
70+
71+
if (!$newVersion)
72+
{
73+
$newVersion = $currentProjectVersion;
74+
}
75+
76+
$newVersionParsed = [AzureEngSemanticVersion]::ParseVersionString($newVersion)
77+
if ($null -eq $newVersionParsed)
78+
{
79+
Write-Error "Invalid version $newVersion. Version must follow standard SemVer rules, see https://aka.ms/azsdk/engsys/packageversioning"
80+
exit 1
81+
}
82+
83+
if (Test-Path "Function:SetPackageVersion")
84+
{
85+
SetPackageVersion -PackageName $packageProperties.Name -Version $newVersion -ServiceDirectory $serviceDirectory -ReleaseDate $releaseDateString `
86+
-BuildType $BuildType -GroupId $packageProperties.Group
87+
}
88+
else
89+
{
90+
LogError "The function 'SetPackageVersion' was not found.`
91+
Make sure it is present in eng/scripts/Language-Settings.ps1.`
92+
See https://github.com/Azure/azure-sdk-tools/blob/master/doc/common/common_engsys.md#code-structure"
93+
exit 1
94+
}
95+
96+
&$EngCommonScriptsDir/Update-DevOps-Release-WorkItem.ps1 `
97+
-language $LanguageDisplayName `
98+
-packageName $packageProperties.Name `
99+
-version $newVersion `
100+
-plannedDate $releaseDateString `
101+
-packageRepoPath $packageProperties.serviceDirectory
102+
103+
git diff -s --exit-code $packageProperties.DirectoryPath
104+
if ($LASTEXITCODE -ne 0)
105+
{
106+
git status
107+
Write-Host "Some changes were made to the repo source" -ForegroundColor Green
108+
Write-Host "Submit a pull request with the necessary changes to the repo" -ForegroundColor Green
109+
}

eng/common/scripts/common.ps1

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,17 @@ $EngScriptsLanguageSettings = Join-path $EngScriptsDir "Language-Settings.ps1"
2424
if (Test-Path $EngScriptsLanguageSettings) {
2525
. $EngScriptsLanguageSettings
2626
}
27+
2728
if (-not $LanguageShort)
2829
{
2930
$LangaugeShort = $Language
3031
}
3132

33+
if (-not $LanguageDisplayName)
34+
{
35+
$LanguageDisplayName = $Language
36+
}
37+
3238
# Transformed Functions
3339
$GetPackageInfoFromRepoFn = "Get-${Language}-PackageInfoFromRepo"
3440
$GetPackageInfoFromPackageFileFn = "Get-${Language}-PackageInfoFromPackageFile"

0 commit comments

Comments
 (0)