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
}
|