File: SetTestPipelineVersion.ps1

package info (click to toggle)
python-azure 20250603%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 851,724 kB
  • sloc: python: 7,362,925; ansic: 804; javascript: 287; makefile: 195; sh: 145; xml: 109
file content (58 lines) | stat: -rw-r--r-- 1,640 bytes parent folder | download | duplicates (2)
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
# Sets a valid version for a package using the buildID

param (
  [Parameter(mandatory = $true)]
  [string]$BuildID,
  [Parameter(mandatory = $true)]
  [string]$PackageNames,
  [Parameter(mandatory = $true)]
  [string]$ServiceDirectory,
  [Parameter(mandatory = $false)]
  [string]$TagSeparator = "_"
)

. (Join-Path $PSScriptRoot common.ps1)

Write-Host "PackageNames: $PackageNames"
Write-Host "ServiceDirectory: $ServiceDirectory"
Write-Host "BuildID: $BuildID"

$packageNamesArray = @()

if ([String]::IsNullOrWhiteSpace($PackageNames)) {
  LogError "PackageNames cannot be empty."
  exit 1
}
else {
  $packageNamesArray = $PackageNames.Split(',')
}

foreach ($packageName in $packageNamesArray) {
  Write-Host "Processing $packageName"
  $newVersion = [AzureEngSemanticVersion]::new("1.0.0")
  $prefix = "$packageName$TagSeparator"
  Write-Host "Get Latest Tag : git tag -l $prefix*"
  $latestTags = git tag -l "$prefix*"

  $semVars = @()

  if ($latestTags -and ($latestTags.Length -gt 0)) {
    foreach ($tag in $latestTags) {
      $semVars += $tag.Substring($prefix.Length)
    }

    $semVarsSorted = [AzureEngSemanticVersion]::SortVersionStrings($semVars)
    Write-Host "Last Published Version $($semVarsSorted[0])"
    $newVersion = [AzureEngSemanticVersion]::new($semVarsSorted[0])
  }

  $newVersion.PrereleaseLabel = $newVersion.DefaultPrereleaseLabel
  $newVersion.PrereleaseNumber = $BuildID
  $newVersion.IsPrerelease = $True

  Write-Host "Version to publish [ $($newVersion.ToString()) ]"

  SetPackageVersion -PackageName $packageName `
    -Version $newVersion.ToString() `
    -ServiceDirectory $ServiceDirectory
}