1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-08 03:31:59 +02:00
goreleaser/docs/140-ci.md
Carlos Alexandro Becker f0722a1f4a
docs: fmt
2018-02-17 19:02:17 -02:00

1.1 KiB

title
Continuous Integration

GoReleaser was built from the very first commit with the idea of running it as part of the CI pipeline in mind.

Let's see how we can get it working on popular CI softwares.

Travis

You may want to setup your project to auto-deploy your new tags on Travis, for example:

# .travis.yml
language: go

# needed for the nfpm pipe
addons:
  apt:
    packages:
    - rpm

# needed for the docker pipe
services:
- docker

# calls goreleaser
deploy:
- provider: script
  skip_cleanup: true
  script: curl -sL http://git.io/goreleaser | bash
  on:
    tags: true
    condition: $TRAVIS_OS_NAME = linux

Note the last line (condition: $TRAVIS_OS_NAME = linux): it is important if you run a build matrix with multiple Go versions and/or multiple OSes. If that's the case you will want to make sure GoReleaser is run just once.

Circle

Here is how to do it with CircleCI:

# circle.yml
deployment:
  tag:
    tag: /v[0-9]+(\.[0-9]+)*(-.*)*/
    owner: user
    commands:
      - curl -sL https://git.io/goreleaser | bash