Skip to content

Guide · Open source

How to use GoReleaser: set up automated releases

Updated · written with AI from the project's own documentation and checked against our catalogue data

GoReleaser is an open-source tool that handles the repetitive work of releasing software: building binaries, packaging them and publishing them so people can download them. It is written in Go and released under the MIT licence. This guide explains what it is for, how to get it onto your machine or into a CI/CD system, and how to decide whether it fits your project.

GoReleasergoreleaser/goreleaser · ★ 16.1k · MIT

Quick start

  1. 1Read the docs. Open https://goreleaser.com to see the installation and CI guides.
  2. 2Choose where it runs. Pick your own machine or a CI/CD system, using the matching guide from the README.
  3. 3Clone the repository if needed. Run git clone https://github.com/goreleaser/goreleaser to get the source.
  4. 4Set up your CI/CD job. Follow the CI guide to add GoReleaser to your release workflow.
  5. 5Run a release. Trigger the release step so binaries are built, packaged and published.
  6. 6Ask for help if stuck. Use GitHub Discussions or the links at goreleaser.com/links if the docs do not answer your question.

What GoReleaser does

GoReleaser focuses on the release step rather than on writing or running your program. Its README describes it as release engineering simplified and says it lets you focus on building your software instead of the complexities of releasing it.

The tool covers three jobs: building binaries, packaging them, and publishing them for download. The README says it runs on your own machine or in CI/CD systems.

  • Builds binaries
  • Packages binaries
  • Publishes binaries so people can download them

Who GoReleaser is for

GoReleaser fits Go developers who want to publish command-line tools or binaries for several operating systems. It also suits maintainers who run releases through GitHub Actions or another CI/CD system, and teams that want a repeatable release process instead of manual steps.

It is less useful if you only need to run a program and never publish it, or if your project has no CI/CD or release workflow, because most of its value comes from automating releases.

  • Good fit: Go developers publishing multi-platform binaries
  • Good fit: maintainers releasing through GitHub Actions or another CI/CD system
  • Good fit: teams that want repeatable releases
  • Poor fit: people who only run programs and do not publish them
  • Poor fit: projects without CI/CD or a release workflow

Install GoReleaser

The README links to two installation routes: installing on your own machine, and setting it up on CI/CD systems. The README lists no prerequisites. To get the source code, the README gives a clone command for the repository.

For full installation instructions, follow the install page and CI guide linked from the README at goreleaser.com.

  • On your machine: see the install page at https://goreleaser.com/install/
  • On CI/CD systems: see https://goreleaser.com/ci/
  • Clone the repository from the README
git clone https://github.com/goreleaser/goreleaser

Run GoReleaser in a release workflow

The README does not show a full configuration or release command, so check the documentation at https://goreleaser.com for the exact steps. The README states that documentation is hosted live there.

Because the tool is aimed at maintainers who release through CI/CD, the common pattern is to run it when you publish a release, so each release is built the same way every time.

  • Confirm your project is a Go project that produces binaries
  • Set up a CI/CD job, such as GitHub Actions, using the CI guide
  • Run the release step from the documentation so builds and uploads happen the same way each time

Where to get help

The README points to several community channels: an X account, a Telegram news channel, and GitHub Discussions. All other links are collected at https://goreleaser.com/links/. The project also has a contribution guide and a Contributor Covenant code of conduct.

Sponsorship is available through GitHub Sponsors and OpenCollective, according to the README.

  • GitHub Discussions: https://github.com/goreleaser/goreleaser/discussions
  • Community links: https://goreleaser.com/links/
  • Contribution guide: CONTRIBUTING.md in the repository

What people use it for

  • Publishing a Go command-line tool as binaries for several operating systems
  • Automating releases of a Go project from GitHub Actions
  • Replacing manual build-and-upload steps with a repeatable release process
  • Sponsoring or supporting the project for teams that depend on it

Frequently asked questions

Is GoReleaser free?

The source repository is licensed under MIT, which the README states. The README does not list any paid tiers, so check the project site for current terms.

What does GoReleaser require to install?

The README lists no prerequisites. It points to installation instructions at goreleaser.com/install and CI setup at goreleaser.com/ci.

Can I use GoReleaser with GitHub Actions?

The README says it runs on CI/CD systems and links to a CI guide. Maintainers who run releases through GitHub Actions are named as a target audience.

Is GoReleaser only for Go projects?

Its primary language is Go. The README also shows logos for Rust, Zig, TypeScript and Python, but it does not explain what support those languages have.

Are there alternatives to GoReleaser?

The directory lists no comparable projects, so this guide cannot name alternatives from its source. Compare release tools against your own CI/CD setup.

Do I need GoReleaser if I only run my program?

Probably not. The tool is aimed at the release step, so if you only run a program and do not publish it, it adds little value.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

GoReleaser suits Go developers and maintainers who publish binaries for several operating systems and release through CI/CD or a repeatable workflow. If you only run programs, or your project has no release process to automate, pick a simpler approach.

Install options & downloads