Help us shape the future of Go! Take the 2026 Go Developer Survey

goreleaser

command module
v0.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2016 License: MIT Imports: 8 Imported by: 0

README

Releaser

Builds go binaries for several platforms, creates a github release and then push it to a custom homebrew repository

How it works?

The idea started with a simple shell script, but it quickly became more complex and I also wanted to publish binaries via homebrew.

So, the all-new goreleaser was born.

Usage

Basically, you need to create a goreleaser.yml file in the root of your repository. A minimal config would look like this:

repo: user/repo
binary_name: my-binary

This will build main.go file as my-binary, for Darwin and Linux, x86_64 and i386, packaging the binary, LICENSE.md and README.md and publish a new github release in the user/repo repository with the .tar.gz files there.

Homebrew

To push it to a homebrew repo, just add a brew section:

repo: user/repo
binary_name: my-binary
brew:
  repo: user/homebrew-formulae
  caveats: "Optional caveats to add to the formulae"
Build customization

Just add a build section

repo: user/repo
binary_name: my-binary
build:
  main: ./cmd/main.go
  oses:
    - darwin
    - freebsd
  arches:
    - amd64

oses and arches should be in GOOS/GOARCH-compatible format.

Add more files

You might also want to change the files that are packaged by adding a files section:

repo: user/repo
binary_name: my-binary
files:
  - LICENSE.txt
  - README.md
  - CHANGELOG.md

Wire it with travis-ci

You may want to wire this to auto-deploy your new tags on travis, for examepl:

after_success:
  test ! -z "$TRAVIS_TAG" && curl -s https://raw.githubusercontent.com/goreleaser/get/master/latest | bash

How the end result looks like

The release on github looks pretty much like this:

image

And the homebrew formulae would look like:

class Antibody < Formula
  desc "A faster and simpler antigen written in Golang."
  homepage "http://getantibody.github.io"
  url "https://github.com/getantibody/antibody/releases/download/v2.2.2/antibody_#{%x(uname -s).gsub(/\n/, '')}_#{%x(uname -m).gsub(/\n/, '')}.tar.gz"
  head "https://github.com/getantibody/antibody.git"
  version "v2.2.2"

  def install
    bin.install "antibody"
  end

  def caveats
    "To start using antibody, you need to add `source <(antibody init)` to your `~/.zshrc`."
  end
end

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL