From 7ebbd9a2088ae0bec91ad8a9792096aa63d1eb63 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:42 -0700 Subject: [PATCH] Update set-test-pipeline-version.yml to handle one or more packages (#29851) Co-authored-by: James Suplizio --- .../steps/set-test-pipeline-version.yml | 10 +++- eng/common/scripts/SetTestPipelineVersion.ps1 | 60 +++++++++++-------- 2 files changed, 43 insertions(+), 27 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 091ef62766eb8..dee4e38349d25 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 56ae4ae0965f7..a24c011f85eb7 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 ([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") + $latestTags = git tag -l "${packageName}_*" + + Write-Host "Get Latest Tag : git tag -l ${packageName}_*" + $semVars = @() -if ($latestTags -and ($latestTags.Length -gt 0)) -{ - foreach ($tags in $latestTags) + if ($latestTags -and ($latestTags.Length -gt 0)) { - $semVars += $tags.Replace("${PackageName}_", "") + foreach ($tags in $latestTags) + { + $semVars += $tags.Replace("${packageName}_", "") + } + + $semVarsSorted = [AzureEngSemanticVersion]::SortVersionStrings($semVars) + Write-Host "Last Published Version $($semVarsSorted[0])" + $newVersion = [AzureEngSemanticVersion]::new($semVarsSorted[0]) } - $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 + $newVersion.PrereleaseLabel = $newVersion.DefaultPrereleaseLabel + $newVersion.PrereleaseNumber = $BuildID + $newVersion.IsPrerelease = $True -Write-Host "Version to publish [ $($newVersion.ToString()) ]" + Write-Host "Version to publish [ $($newVersion.ToString()) ]" -SetPackageVersion -PackageName $PackageName ` - -Version $newVersion.ToString() ` - -ServiceDirectory $ServiceDirectory \ No newline at end of file + SetPackageVersion -PackageName $packageName ` + -Version $newVersion.ToString() ` + -ServiceDirectory $ServiceDirectory +}