Search code examples
azure-devopsazure-pipelines-yamlgitversion

Add a condition to run Gitversion when branch is main


We are using a Azure yaml pipeline and Gitversion, configured to version up based on PR templates.

- task: gitversion/execute@0
      inputs:
        useConfigFile: true
        configFilePath: 'GitVersion.yml'
    
- script: echo current version is $(GitVersion.MajorMinorPatch) 
      displayName: 'Dispaly calculated version'

- task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: 'echo \##vso[build.updatebuildnumber]$(GitVersion.MajorMinorPatch)'

How do i set a condition to run only on main branch. I have a same setup of pipelines configured in feature branch for different testing. So when Gitversion should execute only when main branch is being used.

Gitversion.yaml:

mode: Mainline
branches:
  feature:
    regex: ^feature?[/-]
    tag: feat-{BranchName}
    source-branches: ['main','master']
  fix:
    regex: bugfix(es)?[/-]
    tag: bugfix-{BranchName}
    source-branches: ['main','master']
    
ignore:
  sha: []
merge-message-formats: {}

Solution

  • This condition helps me to acheive my requriement

    and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))