mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-17 20:47:50 +02:00
readme
This commit is contained in:
parent
3bb337840b
commit
75fa902105
107
README.md
107
README.md
@ -1 +1,106 @@
|
||||
# Releaser
|
||||
# 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](https://github.com/goreleaser/old-go-releaser),
|
||||
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:
|
||||
|
||||
```yaml
|
||||
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:
|
||||
|
||||
```yaml
|
||||
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
|
||||
|
||||
```yaml
|
||||
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:
|
||||
|
||||
```yaml
|
||||
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:
|
||||
|
||||
```yaml
|
||||
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:
|
||||
|
||||
[](https://github.com/getantibody/antibody/releases/tag/v2.2.2)
|
||||
|
||||
And the homebrew formulae would look like:
|
||||
|
||||
```rb
|
||||
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
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user