From 9ec257d9ddb078c9ecf30dc8c5ef5d85d17c1415 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 7 Jul 2022 17:46:37 -0700 Subject: [PATCH] Update set-test-pipeline-version.yml to handle one or more packages (#3814) Co-authored-by: James Suplizio --- .../steps/set-test-pipeline-version.yml | 10 ++- eng/common/scripts/SetTestPipelineVersion.ps1 | 64 +++++++++++-------- 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/eng/common/pipelines/templates/steps/set-test-pipeline-version.yml b/eng/common/pipelines/templates/steps/set-test-pipeline-version.yml index 091ef6276..dee4e3834 100644 --- a/eng/common/pipelines/templates/steps/set-test-pipeline-version.yml +++ b/eng/common/pipelines/templates/steps/set-test-pipeline-version.yml @@ -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 }}' \ No newline at end of file + arguments: > + -BuildID $(Build.BuildId) + -PackageNames '${{ coalesce(parameters.PackageName, parameters.PackageNames) }}' + -ServiceDirectory '${{ parameters.ServiceDirectory }}' + pwsh: true diff --git a/eng/common/scripts/SetTestPipelineVersion.ps1 b/eng/common/scripts/SetTestPipelineVersion.ps1 index 56ae4ae09..a24c011f8 100644 --- a/eng/common/scripts/SetTestPipelineVersion.ps1 +++ b/eng/common/scripts/SetTestPipelineVersion.ps1 @@ -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 \ No newline at end of file + 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 +}