Reputation: 1428
In my build pipeline I am doing the following:
In step 2 the Powershell script is pretty simple:
DEFINED ENV VARIABLES:
Name: buildNumber Value: $(Build.BuildNumber)
Name: rootPath Value:$(Build.ArtifactStagingDirectory)
CODE:
$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."
}
For some reason my $buildNumber is coming back null. The $rootPath is working. Am I not able to access the $(Build.BuildNumber) outside the build step? The build number format is defined in the Options for the Pipeline and it works fine when stamping the build, but I am unable to access it in my powershell script.
Any Thoughts?
Upvotes: 16
Views: 7058
Reputation: 115037
Use $env:BUILD_BUILDNUMBER
instead of the $(...)
notation.
See the different notations for different script types in the docs.
Upvotes: 24