Update set-test-pipeline-version.yml to handle one or more packages (#3814)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>
This commit is contained in:
Azure SDK Bot 2022-07-07 17:46:37 -07:00 committed by GitHub
parent 0c12c92311
commit 9ec257d9dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 29 deletions

View File

@ -1,5 +1,6 @@
parameters:
PackageName: ''
PackageNames: ''
ServiceDirectory: ''
TestPipeline: false
@ -7,9 +8,12 @@ steps:
- ${{ if eq(parameters.TestPipeline, 'true') }}:
- task: PowerShell@2
displayName: Prep template pipeline for release
condition: and(succeeded(), ne(variables['Skip.SetTestPipelineVersion'], 'true'))
condition: and(succeeded(), ne(variables['Skip.SetTestPipelineVersion'], 'true'))
inputs:
pwsh: true
workingDirectory: $(Build.SourcesDirectory)
filePath: $(Build.SourcesDirectory)/eng/common/scripts/SetTestPipelineVersion.ps1
arguments: '-BuildID $(Build.BuildId) -PackageName ${{ parameters.PackageName }} -ServiceDirectory ${{ parameters.ServiceDirectory }}'
arguments: >
-BuildID $(Build.BuildId)
-PackageNames '${{ coalesce(parameters.PackageName, parameters.PackageNames) }}'
-ServiceDirectory '${{ parameters.ServiceDirectory }}'
pwsh: true

View File

@ -2,43 +2,55 @@
param (
[Parameter(mandatory = $true)]
$BuildID,
[string]$BuildID,
[Parameter(mandatory = $true)]
$PackageName,
[string]$PackageNames,
[Parameter(mandatory = $true)]
$ServiceDirectory
[string]$ServiceDirectory
)
. (Join-Path $PSScriptRoot common.ps1)
Write-Host "PackageName: $PackageName"
Write-Host "PackageNames: $PackageNames"
Write-Host "ServiceDirectory: $ServiceDirectory"
Write-Host "BuildID: $BuildID"
$newVersion = [AzureEngSemanticVersion]::new("1.0.0")
$latestTags = git tag -l "${PackageName}_*"
$packageNamesArray = @()
Write-Host "Get Latest Tag : git tag -l ${PackageName}_*"
$semVars = @()
if ($latestTags -and ($latestTags.Length -gt 0))
{
foreach ($tags in $latestTags)
{
$semVars += $tags.Replace("${PackageName}_", "")
}
$semVarsSorted = [AzureEngSemanticVersion]::SortVersionStrings($semVars)
Write-Host "Last Published Version $($semVarsSorted[0])"
$newVersion = [AzureEngSemanticVersion]::new($semVarsSorted[0])
if ([String]::IsNullOrWhiteSpace($PackageNames)) {
LogError "PackageNames cannot be empty."
exit 1
} else {
$packageNamesArray = $PackageNames.Split(',')
}
$newVersion.PrereleaseLabel = $newVersion.DefaultPrereleaseLabel
$newVersion.PrereleaseNumber = $BuildID
$newVersion.IsPrerelease = $True
foreach ($packageName in $packageNamesArray) {
Write-Host "Processing $packageName"
$newVersion = [AzureEngSemanticVersion]::new("1.0.0")
$latestTags = git tag -l "${packageName}_*"
Write-Host "Version to publish [ $($newVersion.ToString()) ]"
Write-Host "Get Latest Tag : git tag -l ${packageName}_*"
$semVars = @()
SetPackageVersion -PackageName $PackageName `
-Version $newVersion.ToString() `
-ServiceDirectory $ServiceDirectory
if ($latestTags -and ($latestTags.Length -gt 0))
{
foreach ($tags in $latestTags)
{
$semVars += $tags.Replace("${packageName}_", "")
}
$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
}