В моем конвейере сборки я делаю следующее:
- Восстановление из Git
- Скрипт Powershell - чтобы получить номер сборки и записать его в файл json ДО ....
- Построение решения
- Архивные файлы
- Опубликовать артефакт.
На шаге 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.
Есть мысли?