mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-01-10 03:47:03 +02:00
56 lines
1.1 KiB
Markdown
56 lines
1.1 KiB
Markdown
---
|
|
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](https://travis-ci.org), for example:
|
|
|
|
```yaml
|
|
# .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](https://circleci.com):
|
|
|
|
```yml
|
|
# circle.yml
|
|
deployment:
|
|
tag:
|
|
tag: /v[0-9]+(\.[0-9]+)*(-.*)*/
|
|
owner: user
|
|
commands:
|
|
- curl -sL https://git.io/goreleaser | bash
|
|
```
|