File: Update-ModuleVersion.ps1

package info (click to toggle)
golang-github-azure-azure-sdk-for-go 68.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 556,256 kB
  • sloc: javascript: 196; sh: 96; makefile: 7
file content (80 lines) | stat: -rw-r--r-- 2,159 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<#
.SYNOPSIS
Bumps up package versions after release

.PARAMETER ModulePath
The full module path for a package '/sdk/<module>' or `/sdk/<group>/<module>`

.PARAMETER NewVersionString
New version string to use. Must follow SemVer conventions.

.DESCRIPTION
This script bumps up package versions following conventions defined at https://github.com/Azure/azure-sdk/blob/main/docs/policies/releases.md#incrementing-after-release-go
#>

[CmdletBinding()]
Param (
  [Parameter(Mandatory=$True)]
  [string] $ModulePath,
  [string] $NewVersionString,
  [string] $ReleaseDate,
  [boolean] $ReplaceLatestEntryTitle=$false
 )

. (Join-Path $PSScriptRoot ".." common scripts common.ps1)

$moduleProperties = Get-PkgProperties -PackageName $ModulePath

if (!$moduleProperties)
{
  Write-Error "Could not find properties for module $ModulePath!"
  exit 1
}

$incrementVersion = !$NewVersionString;
$semVer = [AzureEngSemanticVersion]::ParseVersionString($moduleProperties.Version);

if ($incrementVersion) {
  if (!$semVer) {
    LogError "Could not parse existing version $($moduleProperties.Version)"
    exit 1
  }

  if ($semVer.PrereleaseLabel -ne "zzz") {
    $semVer.PrereleaseNumber++
  }
  else {
    $semVer.Patch++
  }
}
else {
  $semVer = [AzureEngSemanticVersion]::ParseVersionString($NewVersionString)
  if (!$semVer) {
    LogError "Could not parse given version $NewVersionString"
    exit 1
  }
}

Write-Verbose "New Version: $semVer"

# Update version in version file.
$versionFileContent = Get-Content -Path $moduleProperties.VersionFile -Raw
$newVersionFileContent = $versionFileContent -replace $moduleProperties.Version, $semVer.ToString()
$newVersionFileContent | Set-Content -Path $moduleProperties.VersionFile -NoNewline

$unreleased = $incrementVersion
$updateExisting = !$incrementVersion

if ($ReplaceLatestEntryTitle) {
  $updateExisting = $ReplaceLatestEntryTitle
}

# Update change log entry
& "${RepoRoot}/eng/common/scripts/Update-ChangeLog.ps1" `
  -Version $semVer.ToString() `
  -ChangelogPath $moduleProperties.ChangeLogPath `
  -Unreleased $unreleased `
  -ReplaceLatestEntryTitle $updateExisting `
  -ReleaseDate $releaseDate

exit 0