Add Circle CI config file and update goreleaser config file
This commit is contained in:
Juan Carlos Mejías Rodríguez 2019-08-15 11:45:49 -04:00 committed by GitHub
parent 91ff8211ab
commit 859d11937e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

88
.circleci/config.yml Normal file
View File

@ -0,0 +1,88 @@
version: 2.1
executors:
go:
docker:
- image: circleci/golang:1.12
environment:
GO111MODULES: on
goreleaser:
docker:
- image: goreleaser/goreleaser
commands:
gomod:
steps:
- restore_cache:
keys: [gomod-]
- run:
name: Download dependencies
command: go mod download
- save_cache:
key: gomod-{{ checksum "go.sum" }}
paths: [/go/pkg/mod]
jobs:
test:
executor: go
steps:
- checkout
- gomod
- run:
name: Run tests
command: go test -v ./...
coverage:
executor: go
steps:
- checkout
- gomod
- run:
name: Create test coverage report
command: go test -race -coverprofile=coverage.txt ./...
- run:
name: Print test coverage report
command: go tool cover -func=coverage.txt
- store_artifacts:
path: ./coverage.txt
destination: coverage.txt
release-test:
executor: goreleaser
working_directory: /go/src/github.com/greenled/portainer-stack-utils
steps:
- checkout
- setup_remote_docker
- run:
name: Create snapshot
command: goreleaser --skip-publish --snapshot
release:
executor: goreleaser
working_directory: /go/src/github.com/greenled/portainer-stack-utils
steps:
- checkout
- setup_remote_docker
- run:
name: Create and publish release
command: |
docker login -u $CI_REGISTY_USER -p $CI_REGISTY_PASSWORD $CI_REGISTRY
goreleaser
workflows:
ci:
jobs:
- test
- coverage
- release-test
- release:
requires:
- test
- coverage
- release-test
filters:
branches:
ignore: /.*/
tags:
only: /^v.*/