Created
December 21, 2021 13:37
-
-
Save davideicardi/0fe7c20229e7886f1cb47b87c9dc9077 to your computer and use it in GitHub Desktop.
Calculate version inside an Azure DevOps pipeline using counter function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Calculate version that will be incremented for each build whenever Major or Minor change, and different for each branch. | |
# Solution based on https://k2vacademy.com/2019/04/03/hidden-gems-in-azure-pipelines-creating-your-own-rev-variable-using-counter-expression-in-azure-pipelines/ | |
# This could be useful if gitversion cannot be used. | |
# Otherwise the best solution is to use instead the default gitversion task: https://github.com/GitTools/actions/blob/main/docs/examples/azure/gitversion/execute/usage-examples.md | |
# .... | |
variables: | |
# Versioning is handled using a format like major.minor.patch{-snapshot} | |
# Major and Minor are fixed, patch is calculated using a counter (it will reset to 0 every time other values change). | |
# Snapshot is populated with the branch when not main. | |
VERSION_MAJOR: "0" | |
VERSION_MINOR: "1" | |
VERSION_PATCH: $[counter(format('{0}.{1}.{2}', variables['VERSION_MAJOR'], variables['VERSION_MINOR'], variables['Build.SourceBranchName']), 0)] | |
${{ if ne(variables['Build.SourceBranchName'], 'main') }}: | |
VERSION_SNAPSHOT: $[format('-{0}', variables['Build.SourceBranchName'])] | |
${{ if eq(variables['Build.SourceBranchName'], 'main') }}: | |
VERSION_SNAPSHOT: "" | |
VERSION: $[format('{0}.{1}.{2}{3}', variables['VERSION_MAJOR'], variables['VERSION_MINOR'], variables['VERSION_PATCH'], variables['VERSION_SNAPSHOT'])] | |
# .... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment