Skip to content

Commit 859d119

Browse files
authored
Add CI (#25)
Add Circle CI config file and update goreleaser config file
1 parent 91ff821 commit 859d119

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

.circleci/config.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
version: 2.1
2+
3+
executors:
4+
go:
5+
docker:
6+
- image: circleci/golang:1.12
7+
environment:
8+
GO111MODULES: on
9+
10+
goreleaser:
11+
docker:
12+
- image: goreleaser/goreleaser
13+
14+
commands:
15+
gomod:
16+
steps:
17+
- restore_cache:
18+
keys: [gomod-]
19+
- run:
20+
name: Download dependencies
21+
command: go mod download
22+
- save_cache:
23+
key: gomod-{{ checksum "go.sum" }}
24+
paths: [/go/pkg/mod]
25+
26+
jobs:
27+
test:
28+
executor: go
29+
steps:
30+
- checkout
31+
- gomod
32+
- run:
33+
name: Run tests
34+
command: go test -v ./...
35+
36+
coverage:
37+
executor: go
38+
steps:
39+
- checkout
40+
- gomod
41+
- run:
42+
name: Create test coverage report
43+
command: go test -race -coverprofile=coverage.txt ./...
44+
- run:
45+
name: Print test coverage report
46+
command: go tool cover -func=coverage.txt
47+
- store_artifacts:
48+
path: ./coverage.txt
49+
destination: coverage.txt
50+
51+
release-test:
52+
executor: goreleaser
53+
working_directory: /go/src/github.com/greenled/portainer-stack-utils
54+
steps:
55+
- checkout
56+
- setup_remote_docker
57+
- run:
58+
name: Create snapshot
59+
command: goreleaser --skip-publish --snapshot
60+
61+
release:
62+
executor: goreleaser
63+
working_directory: /go/src/github.com/greenled/portainer-stack-utils
64+
steps:
65+
- checkout
66+
- setup_remote_docker
67+
- run:
68+
name: Create and publish release
69+
command: |
70+
docker login -u $CI_REGISTY_USER -p $CI_REGISTY_PASSWORD $CI_REGISTRY
71+
goreleaser
72+
73+
workflows:
74+
ci:
75+
jobs:
76+
- test
77+
- coverage
78+
- release-test
79+
- release:
80+
requires:
81+
- test
82+
- coverage
83+
- release-test
84+
filters:
85+
branches:
86+
ignore: /.*/
87+
tags:
88+
only: /^v.*/

0 commit comments

Comments
 (0)