* Update Package Properties Logic, make prepare release require only 1 argument, make rerun of Get-PkgProperties in Update-Changelog not required * Remove ServiceDirectory parameter from PrepareRelease.ps1 * changes to argument names * pass service directory to Get-AllPackageInfoFromRepo * Remove changes in Update-ChangeLog.ps1 * updates to Package-Properties.ps1 Co-authored-by: Chidozie Ononiwu <chononiw@microsoft.com> Co-authored-by: Chidozie Ononiwu <31145988+chidozieononiwu@users.noreply.github.com>
119 lines
3.3 KiB
PowerShell
119 lines
3.3 KiB
PowerShell
#Requires -Version 6.0
|
|
|
|
[CmdletBinding()]
|
|
param(
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$PackageName,
|
|
[string]$ServiceDirectory,
|
|
[string]$ReleaseDate # Pass Date in the form MM/dd/yyyy"
|
|
)
|
|
Set-StrictMode -Version 3
|
|
|
|
. ${PSScriptRoot}\common.ps1
|
|
|
|
function Get-ReleaseDay($baseDate)
|
|
{
|
|
# Find first friday
|
|
while ($baseDate.DayOfWeek -ne 5)
|
|
{
|
|
$baseDate = $baseDate.AddDays(1)
|
|
}
|
|
|
|
# Go to Tuesday
|
|
$baseDate = $baseDate.AddDays(4)
|
|
|
|
return $baseDate;
|
|
}
|
|
|
|
$ErrorPreference = 'Stop'
|
|
|
|
$packageProperties = Get-PkgProperties -PackageName $PackageName -ServiceDirectory $ServiceDirectory
|
|
|
|
if (!$packageProperties)
|
|
{
|
|
Write-Error "Could not find a package with name [ $packageName ], please verify the package name matches the exact name."
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "Package Name [ $($packageProperties.Name) ]"
|
|
Write-Host "Source directory [ $($packageProperties.ServiceDirectory) ]"
|
|
|
|
if (!$ReleaseDate)
|
|
{
|
|
$currentDate = Get-Date
|
|
$thisMonthReleaseDate = Get-ReleaseDay((Get-Date -Day 1));
|
|
$nextMonthReleaseDate = Get-ReleaseDay((Get-Date -Day 1).AddMonths(1));
|
|
|
|
if ($thisMonthReleaseDate -ge $currentDate)
|
|
{
|
|
# On track for this month release
|
|
$ParsedReleaseDate = $thisMonthReleaseDate
|
|
}
|
|
elseif ($currentDate.Day -lt 15)
|
|
{
|
|
# Catching up to this month release
|
|
$ParsedReleaseDate = $currentDate
|
|
}
|
|
else
|
|
{
|
|
# Next month release
|
|
$ParsedReleaseDate = $nextMonthReleaseDate
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$ParsedReleaseDate = [datetime]$ReleaseDate
|
|
}
|
|
|
|
$releaseDateString = $ParsedReleaseDate.ToString("MM/dd/yyyy")
|
|
$month = $ParsedReleaseDate.ToString("MMMM")
|
|
|
|
Write-Host
|
|
Write-Host "Assuming release is in $month with release date $releaseDateString" -ForegroundColor Green
|
|
|
|
$currentProjectVersion = $packageProperties.Version
|
|
|
|
$newVersion = Read-Host -Prompt "Input the new version, or press Enter to use use current project version '$currentProjectVersion'"
|
|
|
|
if (!$newVersion)
|
|
{
|
|
$newVersion = $currentProjectVersion;
|
|
}
|
|
|
|
$newVersionParsed = [AzureEngSemanticVersion]::ParseVersionString($newVersion)
|
|
if ($null -eq $newVersionParsed)
|
|
{
|
|
Write-Error "Invalid version $newVersion. Version must follow standard SemVer rules, see https://aka.ms/azsdk/engsys/packageversioning"
|
|
exit 1
|
|
}
|
|
|
|
if (Test-Path "Function:SetPackageVersion")
|
|
{
|
|
SetPackageVersion -PackageName $packageProperties.Name -Version $newVersion -ServiceDirectory $packageProperties.ServiceDirectory -ReleaseDate $releaseDateString `
|
|
-PackageProperties $packageProperties
|
|
}
|
|
else
|
|
{
|
|
LogError "The function 'SetPackageVersion' was not found.`
|
|
Make sure it is present in eng/scripts/Language-Settings.ps1.`
|
|
See https://github.com/Azure/azure-sdk-tools/blob/master/doc/common/common_engsys.md#code-structure"
|
|
exit 1
|
|
}
|
|
|
|
&$EngCommonScriptsDir/Update-DevOps-Release-WorkItem.ps1 `
|
|
-language $LanguageDisplayName `
|
|
-packageName $packageProperties.Name `
|
|
-version $newVersion `
|
|
-plannedDate $releaseDateString `
|
|
-packageRepoPath $packageProperties.ServiceDirectory `
|
|
-packageType $packageProperties.SDKType `
|
|
-packageNewLibrary $packageProperties.IsNewSDK
|
|
|
|
git diff -s --exit-code $packageProperties.DirectoryPath
|
|
if ($LASTEXITCODE -ne 0)
|
|
{
|
|
git status
|
|
Write-Host "Some changes were made to the repo source" -ForegroundColor Green
|
|
Write-Host "Submit a pull request with the necessary changes to the repo" -ForegroundColor Green
|
|
}
|