Skip to main content

Azure DevOps

Platform: Azure DevOps Pipelines

Pipeline Variables

steps:
- script: |
go install github.com/benjaminabbitt/versionator@latest
VERSION=$(versionator version)
echo "##vso[task.setvariable variable=VERSION]$VERSION"
displayName: 'Get Version'

- script: |
echo "Building version $(VERSION)"
displayName: 'Build'

Build with Version

steps:
- script: |
go install github.com/benjaminabbitt/versionator@latest
displayName: 'Install versionator'

- script: |
VERSION=$(versionator version)
go build -ldflags "-X main.VERSION=$VERSION" -o $(Build.ArtifactStagingDirectory)/app
displayName: 'Build with version'

- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'app'

Full Pipeline Example

trigger:
- main
- refs/tags/v*

pool:
vmImage: 'ubuntu-latest'

variables:
GOPATH: '$(Agent.BuildDirectory)/go'
VERSION: ''

stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- script: |
go install github.com/benjaminabbitt/versionator@latest
echo "##vso[task.setvariable variable=VERSION]$(versionator version)"
displayName: 'Get Version'

- script: |
echo "Building version $(VERSION)"
go build -ldflags "-X main.VERSION=$(VERSION)" -o app
displayName: 'Build'

- stage: Release
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/v')
jobs:
- job: ReleaseJob
steps:
- script: |
echo "Releasing $(Build.SourceBranchName)"
displayName: 'Release'