diff --git a/eng/common/testproxy/override-proxy-version.ps1 b/eng/common/testproxy/override-proxy-version.ps1 new file mode 100644 index 00000000000..d1e6ff5bfa3 --- /dev/null +++ b/eng/common/testproxy/override-proxy-version.ps1 @@ -0,0 +1,25 @@ +<# +.SYNOPSIS +Replaces target test-proxy version present in target_version.txt. + +.PARAMETER TargetVersion +The replacement version. Used in its entirety, so don't exclude parts of the version definition. +#> +[cmdletbinding(SupportsShouldProcess=$True)] +param( + [Parameter(mandatory=$true)] [string] $TargetVersion +) + +$versionFile = Join-Path $PSScriptRoot "target_version.txt" +$existingVersionText = Get-Content -Raw -Path $versionFile +$existingVersion = $existingVersionText.Trim() + +if ($PSCmdLet.ShouldProcess($versionFile)){ + Write-Host "Replacing version `"$existingVersion`" with version `"$TargetVersion`" in $versionFile." + Set-Content -Path $versionFile -Value "$TargetVersion`n" +} +else { + Write-Host "Would replace version `"$existingVersion`" with version `"$TargetVersion`" in $versionFile." +} + + diff --git a/eng/common/testproxy/test-proxy-docker.yml b/eng/common/testproxy/test-proxy-docker.yml index 71a03d1be3b..6e749801f4d 100644 --- a/eng/common/testproxy/test-proxy-docker.yml +++ b/eng/common/testproxy/test-proxy-docker.yml @@ -10,6 +10,15 @@ steps: displayName: 'Language Specific Certificate Trust' condition: and(succeeded(), ${{ parameters.condition }}) + - task: PowerShell@2 + displayName: 'Override proxy version if necessary' + condition: and(succeeded(), ${{ parameters.condition }}, ne('${{ parameters.targetVersion }}', '')) + inputs: + targetType: filePath + filePath: '${{ parameters.templateRoot }}/eng/common/testproxy/override-proxy-version.ps1' + arguments: '-TargetVersion "${{ parameters.targetVersion }}"' + pwsh: true + - pwsh: | docker info displayName: 'Dump active docker information' diff --git a/eng/common/testproxy/test-proxy-tool.yml b/eng/common/testproxy/test-proxy-tool.yml index ae9d6905153..bffc68309c0 100644 --- a/eng/common/testproxy/test-proxy-tool.yml +++ b/eng/common/testproxy/test-proxy-tool.yml @@ -11,14 +11,17 @@ steps: displayName: 'Language Specific Certificate Trust' condition: and(succeeded(), ${{ parameters.condition }}) + - task: PowerShell@2 + displayName: 'Override proxy version if necessary' + condition: and(succeeded(), ${{ parameters.condition }}, ne('${{ parameters.targetVersion }}', '')) + inputs: + targetType: filePath + filePath: '${{ parameters.templateRoot }}/eng/common/testproxy/override-proxy-version.ps1' + arguments: '-TargetVersion "${{ parameters.targetVersion }}"' + pwsh: true + - pwsh: | $version = $(Get-Content "${{ parameters.templateRoot }}/eng/common/testproxy/target_version.txt" -Raw).Trim() - $overrideVersion = "${{ parameters.targetVersion }}" - - if($overrideVersion) { - Write-Host "Overriding default target proxy version of '$version' with override $overrideVersion." - $version = $overrideVersion - } dotnet tool install azure.sdk.tools.testproxy ` --tool-path $(Build.BinariesDirectory)/test-proxy `