goreleaser

command module
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Dec 31, 2016 License: MIT Imports: 7 Imported by: 0

README

GoReleaser Build Status Go Report Card

Deliver Go binaries as fast and easily as possible.

GoReleaser builds Go binaries for several platforms, creates a github release and then push a homebrew formulae to a repository. All that wrapped in your favorite CI.

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

Badges

Feel free to use it in your own projects:

[![Powered By: GoReleaser](https://img.shields.io/badge/powered%20by-goreleaser-green.svg?style=flat-square)](https://github.com/goreleaser)

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
git

Jump to

Keyboard shortcuts

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