Skip to content

goreleaser/goreleaser-azure-devops-extension

ado_goreleaser

GoReleaser: Azure DevOps Extension

Release Software License Build status

Azure DevOps

Join Discord x.com

OpenSSF Scorecard

Overview

This task allows you to easily run GoReleaser within your Azure Pipeline jobs.

Howto

See the blog article Use GoReleaser With Azure DevOps for a detailed explanation of how to use this extension in your Azure Pipeline jobs.

QuickStart

quickstart_1

Customizing

Add the plugin via Azure Pipeline Editor

quickstart_2

or directly into your azure-pipeline.yaml

quickstart_3

- task: goreleaser@0
  inputs:
    version: 'latest'
    distribution: 'goreleaser'
    args: ''
    workdir: '$(Build.SourcesDirectory)'

Inputs

Following inputs can be used

Name Type Default Description
distribution String goreleaser GoReleaser distribution, either goreleaser or goreleaser-pro
version String latest GoReleaser version (see below)
args String Arguments to pass to GoReleaser
workdir String $(Build.SourcesDirectory) Working directory (below repository root)
installOnly Bool false Just install GoReleaser

Version input

The version input accepts:

  • latest (default) — grabs the most recent release
  • An exact version like v2.6.1
  • A semver range like ~> 2.6, which resolves to the highest matching release (e.g. the latest 2.6.x patch)

For GoReleaser Pro, append -pro to the version (e.g. v2.6.1-pro).

Examples

# Latest version
- task: goreleaser@0
  inputs:
    version: 'latest'
    distribution: 'goreleaser'
    args: 'release --clean'

# Exact version
- task: goreleaser@0
  inputs:
    version: 'v2.6.1'
    distribution: 'goreleaser'
    args: 'release --clean'

# Semver range — gets latest 2.6.x
- task: goreleaser@0
  inputs:
    version: '~> 2.6'
    distribution: 'goreleaser'
    args: 'release --clean'

# GoReleaser Pro
- task: goreleaser@0
  inputs:
    version: 'v2.6.1-pro'
    distribution: 'goreleaser-pro'
    args: 'release --clean'

Environment variables

Following environment variables can be used, as environment variable.

Name Description
GITHUB_TOKEN GITHUB_TOKEN for e.g. brew or gofish
GORELEASER_KEY Your GoReleaser Pro License Key, in case you are using the goreleaser-pro distribution

Limitation

I think, you should either disable the release step. Or create a " dummy" repo in GitHub, so you can still use your own homebrew tap or gofish repo.

GoReleaser is not supporting Azure Artifacts currently.

You need to use Publish Pipeline Artifacts to publish the artifact inside Azure DevOps.

Tutorials

Documentation

Please refer to https://goreleaser.com/intro/ for more documentation on using GoReleaser.

Links

License

MIT

see LICENSE for details.