2020-05-10 21:57:11 +02:00
|
|
|
# Install
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
There are two GoReleaser distributions: OSS and [Pro](/pro).
|
|
|
|
|
|
|
|
You can install the pre-compiled binary (in several different ways), use Docker or compile from source (when on OSS).
|
2019-03-25 01:10:30 +02:00
|
|
|
|
|
|
|
Here are the steps for each of them:
|
2018-11-22 21:01:25 +02:00
|
|
|
|
|
|
|
## Install the pre-compiled binary
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
### homebrew tap
|
|
|
|
|
|
|
|
#### oss
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
brew install goreleaser/tap/goreleaser
|
2018-11-22 21:01:25 +02:00
|
|
|
```
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
#### pro
|
|
|
|
|
|
|
|
```sh
|
|
|
|
brew install goreleaser/tap/goreleaser-pro
|
|
|
|
```
|
|
|
|
|
|
|
|
### homebrew
|
|
|
|
|
|
|
|
OSS-only, may not be the latest version.
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
brew install goreleaser
|
2018-11-22 21:01:25 +02:00
|
|
|
```
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
### snapcraft
|
|
|
|
|
|
|
|
OSS only.
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
sudo snap install --classic goreleaser
|
2018-11-22 21:01:25 +02:00
|
|
|
```
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
### scoop
|
|
|
|
|
|
|
|
#### oss
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
scoop bucket add goreleaser https://github.com/goreleaser/scoop-bucket.git
|
|
|
|
scoop install goreleaser
|
2018-11-22 21:01:25 +02:00
|
|
|
```
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
#### pro
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
```sh
|
|
|
|
scoop bucket add goreleaser https://github.com/goreleaser/scoop-bucket.git
|
|
|
|
scoop install goreleaser-pro
|
|
|
|
```
|
|
|
|
|
|
|
|
### deb, rpm and apk packages
|
|
|
|
|
|
|
|
Download the `.deb`, `.rpm` or `.apk` from the [OSS][releases] or [Pro][pro-releases] releases pages and install them with the appropriate tools.
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
### shell script
|
|
|
|
|
|
|
|
OSS only.
|
2019-10-20 16:00:29 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
curl -sfL https://install.goreleaser.com/github.com/goreleaser/goreleaser.sh | sh
|
2019-10-20 16:00:29 +02:00
|
|
|
```
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
<!-- TODO: write a new shell script and store it within the website -->
|
|
|
|
|
|
|
|
### go install
|
|
|
|
|
|
|
|
OSS only.
|
2021-03-23 14:46:11 +02:00
|
|
|
|
|
|
|
```sh
|
|
|
|
go install github.com/goreleaser/goreleaser
|
|
|
|
```
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
### manually
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
Download the pre-compiled binaries from the [OSS][releases] or [Pro][pro-releases] releases pages and copy to the desired location.
|
2018-11-22 21:01:25 +02:00
|
|
|
|
|
|
|
## Running with Docker
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
You can also use it within a Docker container.
|
|
|
|
To do that, you'll need to execute something more-or-less like the examples bellow.
|
|
|
|
|
|
|
|
### oss
|
|
|
|
|
|
|
|
Registries:
|
|
|
|
|
|
|
|
- [`goreleaser/goreleaser`](https://hub.docker.com/r/goreleaser/goreleaser)
|
|
|
|
- [`ghcr.io/goreleaser/goreleaser`](https://github.com/orgs/goreleaser/packages/container/package/goreleaser)
|
|
|
|
|
|
|
|
Example usage:
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
docker run --rm --privileged \
|
2018-11-22 21:01:25 +02:00
|
|
|
-v $PWD:/go/src/github.com/user/repo \
|
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
|
|
-w /go/src/github.com/user/repo \
|
|
|
|
-e GITHUB_TOKEN \
|
|
|
|
-e DOCKER_USERNAME \
|
|
|
|
-e DOCKER_PASSWORD \
|
2018-12-10 17:45:01 +02:00
|
|
|
-e DOCKER_REGISTRY \
|
2018-11-22 21:01:25 +02:00
|
|
|
goreleaser/goreleaser release
|
|
|
|
```
|
|
|
|
|
2021-05-27 00:08:46 +02:00
|
|
|
### pro
|
|
|
|
|
|
|
|
Registries:
|
|
|
|
|
|
|
|
- [`goreleaser/goreleaser-pro`](https://hub.docker.com/r/goreleaser/goreleaser-pro)
|
|
|
|
- [`ghcr.io/goreleaser/goreleaser-pro`](https://github.com/orgs/goreleaser/packages/container/package/goreleaser-pro)
|
|
|
|
|
|
|
|
Example usage:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
docker run --rm --privileged \
|
|
|
|
-v $PWD:/go/src/github.com/user/repo \
|
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
|
|
-w /go/src/github.com/user/repo \
|
|
|
|
-e GITHUB_TOKEN \
|
|
|
|
-e DOCKER_USERNAME \
|
|
|
|
-e DOCKER_PASSWORD \
|
|
|
|
-e DOCKER_REGISTRY \
|
|
|
|
-e GORELEASER_KEY \
|
|
|
|
goreleaser/goreleaser-pro release
|
|
|
|
```
|
|
|
|
|
2020-05-10 21:57:11 +02:00
|
|
|
!!! info
|
|
|
|
Currently, the provided docker image does not support
|
|
|
|
the generation of snapcraft packages.
|
2019-03-25 01:10:30 +02:00
|
|
|
|
2018-11-22 21:01:25 +02:00
|
|
|
Note that the image will almost always have the last stable Go version.
|
|
|
|
|
2019-03-25 01:10:30 +02:00
|
|
|
The `DOCKER_REGISTRY` environment variable can be left empty when you are
|
2018-12-10 17:45:01 +02:00
|
|
|
releasing to the public docker registry.
|
|
|
|
|
2019-03-25 01:10:30 +02:00
|
|
|
If you need more things, you are encouraged to keep your own image. You can
|
|
|
|
always use GoReleaser's [own Dockerfile][dockerfile] as an example though
|
|
|
|
and iterate from that.
|
2018-11-22 21:01:25 +02:00
|
|
|
|
|
|
|
[dockerfile]: https://github.com/goreleaser/goreleaser/blob/master/Dockerfile
|
|
|
|
[releases]: https://github.com/goreleaser/goreleaser/releases
|
2021-05-27 00:08:46 +02:00
|
|
|
[pro-releases]: https://github.com/goreleaser/goreleaser-pro/releases
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2020-05-10 23:59:21 +02:00
|
|
|
## Compiling from source
|
2018-11-22 21:01:25 +02:00
|
|
|
|
2019-05-14 16:22:56 +02:00
|
|
|
Here you have two options:
|
|
|
|
|
2020-05-11 14:35:58 +02:00
|
|
|
If you want to contribute to the project, please follow the
|
2019-05-14 16:22:56 +02:00
|
|
|
steps on our [contributing guide](/contributing).
|
|
|
|
|
2020-05-11 14:35:58 +02:00
|
|
|
If you just want to build from source for whatever reason, follow these steps:
|
2019-05-14 16:22:56 +02:00
|
|
|
|
2021-03-23 14:46:11 +02:00
|
|
|
**clone:**
|
2019-05-14 16:22:56 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
git clone https://github.com/goreleaser/goreleaser
|
|
|
|
cd goreleaser
|
2020-05-11 14:35:58 +02:00
|
|
|
```
|
|
|
|
|
2021-03-23 14:46:11 +02:00
|
|
|
**get the dependencies:**
|
2020-05-11 14:35:58 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
2021-03-23 14:46:11 +02:00
|
|
|
go mod tidy
|
2020-05-11 14:35:58 +02:00
|
|
|
```
|
|
|
|
|
2021-03-23 14:46:11 +02:00
|
|
|
**build:**
|
2020-05-11 14:35:58 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
go build -o goreleaser .
|
2020-05-11 14:35:58 +02:00
|
|
|
```
|
|
|
|
|
2021-03-23 14:46:11 +02:00
|
|
|
**verify it works:**
|
2019-05-14 16:22:56 +02:00
|
|
|
|
2020-08-14 23:13:02 +02:00
|
|
|
```sh
|
|
|
|
./goreleaser --version
|
2019-05-14 16:22:56 +02:00
|
|
|
```
|