mirror of
https://github.com/containrrr/watchtower.git
synced 2025-12-14 06:06:38 +01:00
Setup a working pipeline
* add tests to ensure function even after switching docker client api version * switch docker client api version to remove import of Sirupsen and get rid of the casing workaround * migrate from glide to dep to go modules * rewrite ci workflow * only run publish on version tags * only run build on branches * update goreleaser config * disable automated latest tag push * remove dependency to v2tec/docker-gobuilder * remove dead code and files * add golands .idea folder to gitignore * add label to released docker images * add test reporting, add some unit tests * change test output dir * fix goreleaser versions * add debug output for circleci and goreleaser * disable cgo
This commit is contained in:
parent
98f916f29a
commit
1b82da1ab7
16 changed files with 450 additions and 362 deletions
116
.circleci/config.yml
Normal file
116
.circleci/config.yml
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
version: 2.1
|
||||
|
||||
executors:
|
||||
go:
|
||||
docker:
|
||||
- image: circleci/golang:latest
|
||||
working_directory: ~/repo
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
ci:
|
||||
jobs:
|
||||
- checkout:
|
||||
filters:
|
||||
branches:
|
||||
only: /.*/
|
||||
tags:
|
||||
only: /.*/
|
||||
- linting:
|
||||
requires:
|
||||
- checkout
|
||||
filters:
|
||||
branches:
|
||||
only: /.*/
|
||||
tags:
|
||||
only: /.*/
|
||||
- testing:
|
||||
requires:
|
||||
- checkout
|
||||
filters:
|
||||
branches:
|
||||
only: /.*/
|
||||
tags:
|
||||
only: /.*/
|
||||
- build:
|
||||
requires:
|
||||
- testing
|
||||
- linting
|
||||
filters:
|
||||
tags:
|
||||
ignore: /^v[0-9]+(\.[0-9]+)*$/
|
||||
branches:
|
||||
only: /.*/
|
||||
- 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: mkdir -p /tmp/test-results
|
||||
- run: go build ./...
|
||||
- run: go get gotest.tools/gotestsum
|
||||
- run: gotestsum --junitfile /tmp/test-results/unit-tests.xml
|
||||
- store_test_results:
|
||||
path: /tmp/test-results
|
||||
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.104.1/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 --debug
|
||||
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.104.1/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: CGO_ENABLED=${CGO_ENABLED:-0} ../goreleaser --debug
|
||||
Loading…
Add table
Add a link
Reference in a new issue