Не могу получить доступ к переменным сборки из скрипта powershell - PullRequest
1 голос
/ 15 июня 2019

Я пытаюсь использовать Переменные сборки в скрипте. Согласно этой документации я должен иметь возможность использовать следующее:

Write-Host "BUILD_DATE: $Env:BUILD_DATE"
Write-Host "BUILD_REV: $Env:BUILD_REV"

Тем не менее, я получаю только следующий вывод

BUILD_DATE:
BUILD_REV:

Я также попробовал этот синтаксис:

Write-Host "BUILD_DATE: $(Env:BUILD_DATE)"
Write-Host "BUILD_REV: $(Env:BUILD_REV)"

Write-Host "BUILD_DATE: $(Build.Date)"
Write-Host "BUILD_REV: $(Build.Rev)"

Но первый сегмент дает The term 'Env:BUILD_DATE' is not recognized, а второй - The term 'Build.Date' is not recognized

Как я могу использовать переменные сборки в моем скрипте?

1 Ответ

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

Отказ от ответственности: я практически ничего не знаю о конвейерах Azure, поэтому мой ответ основан на чтении документов. Дайте нам знать, если я ошибаюсь.

Ваша первая команда использует правильный синтаксис для ссылки на переменные среды в PowerShell (также внутри расширяемой строки (в двойных кавычках)).
(Другие команды, основанные на операторе подвыражения $(...), по ошибке пытаются выполнить команды с именем Env:BUILD_DAT, ... вместо обращения к переменным.)

Ваша проблема в том, что целевые переменные среды не существуют .

Список предопределенных переменных, которые отображаются как переменные среды не не содержит переменные с именами Build.Date / $env:BUILD_DATE и Build.Rev / $env:BUILD_REV.

Напротив, переменные с именами Date и Rev, похоже, существуют - когда вы заявляете, они используются в определении формата по умолчанию для Build.BuildNumber / $Env:BUILD_BUILDNUMBER переменной построения , $(Date:yyyyMMdd)$(Rev:.r) - но, по-видимому, другого вида не выставлены как env. vars. (в отличие от самого Build.BuildNumber / $Env:BUILD_BUILDNUMBER, который является незащищенным).

(Я не знаю, где эти переменные определены или как они классифицированы, и где это задокументировано - сообщите нам, если знаете).

Быстрый обходной путь будет разделять значение $Env:BUILD_BUILDNUMBER на составные части:

# Split the build number into date and revision, by "."
$date, $rev = $Env:BUILD_BUILDNUMBER -split '\.'

"BUILD_DATE: $date"
"BUILD_REV: $rev"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...