Конвейер сборки DevOps Azure - невозможно получить доступ к $ (Build.BuildNumber) в скрипте - PullRequest
0 голосов
/ 19 октября 2018

В моем конвейере сборки я делаю следующее:

  1. Восстановление из Git
  2. Скрипт Powershell - чтобы получить номер сборки и записать его в файл json ДО ....
  3. Построение решения
  4. Архивные файлы
  5. Опубликовать артефакт.

На шаге 2 скрипт Powershell довольно прост:

ОПРЕДЕЛЕННЫЕ ПЕРЕМЕННЫЕ ENV:

Name: buildNumber  Value: $(Build.BuildNumber)
Name: rootPath Value:$(Build.ArtifactStagingDirectory)

КОД:

$theFile = Get-ChildItem -Path $rootPath -Recurse -Filter "host.json" | Select-Object -First 1
$propertyName = "BuildNumber"

if($theFile)
{
    $json = Get-Content "$theFile" | Out-String | ConvertFrom-Json
    if($json.$propertyName)
    { 
        $json.$propertyName = $buildNumber
    }else{    
        Add-Member -InputObject $json -MemberType NoteProperty -Name $propertyName -Value $buildNumber
    }
    $json | ConvertTo-Json -depth 100 | Out-File "$theFile"

}
else
{
    Write-Warning "Found no files."
}

Почему-то мой $ buildNumber возвращается в ноль.$ RootPath работает.Я не могу получить доступ к $ (Build.BuildNumber) вне шага сборки?Формат номера сборки определен в параметрах конвейера, и он отлично работает при штамповке сборки, но я не могу получить к нему доступ в своем скрипте powershell.

Есть мысли?

1 Ответ

0 голосов
/ 20 октября 2018

Используйте $env:BUILD_BUILDNUMBER вместо нотации $(...).

См. различные нотации для разных типов скриптов в документации .

...