Zhaph - Ben Duguid
Zhaph - Ben Duguid

Reputation: 26956

Is it possible to change the name of a build based on the branch name in Azure Pipelines?

Most of my builds are from either feature branches or develop, and so I tend to use a known build variable to track the build number such as:

Build Variables

variables:
- group: BuildVars

name: $(BuildPrefix)$(Rev:r)

This works and provides me with a nicely formatted build version that I can then follow through into releases, etc:

Build number as name in Build Pipeline

Build number as name in Release Pipeline

However, when we're planning a release, we name our branches after the release, for example: release/1.1, and I'd like to have the build name reference that instead of the hardcoded (previous) version.

I know that I can reference the branch name via the Build.SourceBranch variable, but I don't see an obvious way to read and modify that outside of a build step, by which time I believe it's too late? I don't really want to have to manually change the BuildPrefix variable until the release has been deployed out to production.

Building on from this would then be the ability to append appropriate pre-release tags, etc. based on the branch name...

Upvotes: 0

Views: 1468

Answers (2)

Leo Liu
Leo Liu

Reputation: 76770

Is it possible to change the name of a build based on the branch name in Azure Pipelines?

The answer is yes.

The solution we currently use is add a Run Inline Powershell task to update build number based on the Build_SourceBranchName:

$branch = $Env:Build_SourceBranchName
Write-Host "Current branch is $branch"
if ($branch -eq "Dev")
{
    Write-Host "##vso[build.updatebuildnumber]$DevBuildNumber"
}
elseif ($branch -eq "Beta")
{
    Write-Host "##vso[build.updatebuildnumber]$BetaBuildNumber"
}
elseif ($branch -eq "Test")
{
    Write-Host "##vso[build.updatebuildnumber]$TestBuildNumber"
}

Check the Logging Command during the build for some more details.

Hope this helps.

Upvotes: 1

4c74356b41
4c74356b41

Reputation: 72171

you can always update the build name during the execution of a build using this:

- pwsh: |
    Write-Host "##vso[build.updatebuildnumber]value_goes_here"

so you could calculate the value in the same (or previous step) and update the build name with that value

Upvotes: 3

Related Questions