watchtower/.circleci/config.yml
2019-04-04 22:38:41 +02:00

124 lines
No EOL
3.1 KiB
YAML

version: 2.1
executors:
go:
docker:
- image: circleci/golang:latest
working_directory: ~/repo
workflows:
version: 2
ci:
jobs:
- checkout
- linting:
requires:
- checkout
- testing:
requires:
- checkout
- build:
requires:
- testing
- linting
filters:
tags:
ignore: /^v[0-9]+(\.[0-9]+)*$/
- publishing:
requires:
- testing
- linting
filters:
branches:
ignore: /.*/
tags:
only: /^v[0-9]+(\.[0-9]+)*$/
jobs:
checkout:
executor: go
steps:
- checkout
- persist_to_workspace:
paths:
- .
root: ~/repo
linting:
executor: go
steps:
- attach_workspace:
at: .
- run: go build .
- run: go get -u golang.org/x/lint/golint
- run: golint -set_exit_status ./...
testing:
executor: go
steps:
- attach_workspace:
at: .
- run: go build ./...
- run: go test ./...
build:
executor: go
steps:
- attach_workspace:
at: .
- setup_remote_docker
- run:
name: Install Goreleaser
command: |
cd .. && \
wget https://github.com/goreleaser/goreleaser/releases/download/v0.59.0/goreleaser_Linux_x86_64.tar.gz && \
tar -xvf goreleaser_Linux_x86_64.tar.gz && \
./goreleaser -v
- run:
name: Execute goreleaser
command: ../goreleaser --snapshot --skip-publish
publishing:
executor: go
steps:
- attach_workspace:
at: .
- setup_remote_docker
- run:
name: Install Goreleaser
command: |
cd .. && \
wget https://github.com/goreleaser/goreleaser/releases/download/v0.59.0/goreleaser_Linux_x86_64.tar.gz && \
tar -xvf goreleaser_Linux_x86_64.tar.gz && \
./goreleaser -v
- run:
name: Login to docker hub
command: |
echo "$DOCKER_PASS" | docker login -u $DOCKER_USER --password-stdin
- run:
name: Execute goreleaser
command: ../goreleaser
# version: 2
# jobs:
# build:
# docker:
# - image: v2tec/gobuilder:0.5.0_go1.7.4-glide0.12.3-goreleaser0.59.0-docker17.05.0
# working_directory: /src
# steps:
# - checkout
# - setup_remote_docker:
# version: 17.05.0-ce
# - run: git fetch --tags
# - run: |
# docker login -u $DOCKER_USER -p $DOCKER_PASS
# IS_RELEASE=$(if [ "$CIRCLE_TAG" != "" ] ; then echo release; else echo ci; fi;)
# /build.sh $IS_RELEASE || exit 1
# chmod 755 /src/dockerfile/push_containers.sh
# if [ "$CIRCLE_TAG" != "" ] ; then /src/dockerfile/push_containers.sh $CIRCLE_TAG; fi;
# - store_artifacts:
# path: /src/dist/
# workflows:
# version: 2
# build-deploy:
# jobs:
# - build:
# filters:
# tags:
# only: /.*/