Azure добавляет пробел к переменной - PullRequest
0 голосов
/ 13 июня 2019

Если я запускаю этот код powershell локально:

$url = "refs/pull/5625/merge"
$SourceBranchFromBuild = $url.split('/')[-1]
$featureReleaseUrl = "http://$sourceBranchFromBuild.azurewebsites.net"
Write-Output $featureReleaseUrl

Вывод:

http://merge.azurewebsites.net

Когда я запускаю этот кодв Azure Powershell:

$url = "refs/pull/5625/merge"
$SourceBranchFromBuild = $url.split('/')[-1]
Write-Host "##vso[task.setvariable variable=prSourceBranchName;]"$SourceBranchFromBuild

И затем создайте URL-адрес в другом сценарии Azure Powershell:

$featureReleaseUrl = "http://$env:prSourceBranchName.azurewebsites.net"
Write-Output $featureReleaseUrl

Выходное значение равно

http: //merge.azurewebsites.net

Что вызывает этот ведущий пробел в $env:prSourceBranchName?

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Azure ничего не добавляет - ваш хост записи -!

Ваш код делает это:

PS> $x = "xxx"
PS> write-host "aaa"$x
aaa xxx

но, вероятно, вы хотите

PS> $x = "xxx"
PS> write-host "aaa$x"
aaaxxx

Обратите внимание, где вторая кавычка - write-host в обоих примерах. Во-первых, перед именем $x. Во втором это после.

В вашем вопросе это называется (с кавычкой перед именем переменной):

Write-Host "##vso[task.setvariable variable=prSourceBranchName;]"$SourceBranchFromBuild

, которая запишет команду ведения журнала в файл журнала, и DevOps Azure обработает это и обновит переменную среды.

Вы, вероятно, ожидаете, что он запишет это в файл журнала:

##vso[task.setvariable variable=prSourceBranchName;]merge

но на самом деле он пишет это :

##vso[task.setvariable variable=prSourceBranchName;] merge

Попробуйте переключить свой код на это (то есть вторая цитата после имени переменной):

Write-Host "##vso[task.setvariable variable=prSourceBranchName;]$SourceBranchFromBuild"

и он должен опускать пробел перед именем ветви в вашем URL.

0 голосов
/ 13 июня 2019

@ PeterBoomsma Попробуйте поместить $ SourceBranchFromBuild в двойные кавычки следующим образом:

Write-Host "##vso[task.setvariable variable=prSourceBranchName;]$SourceBranchFromBuild"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...