-
Notifications
You must be signed in to change notification settings - Fork 5
/
.drone.yml
106 lines (97 loc) · 2.29 KB
/
.drone.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
kind: pipeline
name: default
# TODO: Add caching
# TODO: Add GitHub auto-release
steps:
- name: init
image: golang:1-stretch
commands:
- go install golang.org/x/lint/golint
# This build will trigger vgo to install all packages
- go build -o depcharge
- ./depcharge -h
- export VERSION=$(echo $CI_COMMIT| cut -c1-7)
- export VERSION=$(if [ -z $CI_TAG ]; then echo $VERSION ; else echo $CI_TAG.$VERSION; fi)
- echo -n $VERSION | tee VERSION.txt
- echo
- name: gofmt
image: golang:1-stretch
commands:
# Test for gofmt smells
- >
bash -c '
if [[ $(gofmt -s -d *.go) ]]; then
gofmt -s -d *.go;
echo "gofmt changes detected";
exit -1;
fi
'
- name: golint
image: golang:1-stretch
commands:
# Test for golint smells
- golint -set_exit_status
depends_on:
- init
- name: test
image: golang:1-stretch
environment:
COVER_STRICT: "true"
commands:
# Generate code coverage report
- . ./scripts/create-coverage.sh
depends_on:
- init
- name: build-linux
image: golang:1-alpine
environment:
CGO_ENABLED: 0
GOOS: "linux"
GOARCH: "amd64"
commands:
- export VERSION=$(cat VERSION.txt)
- if [ -n "${CI_TAG-}" ]; then export EXTRA_FLAGS="-w -s"; fi
- go build -ldflags="$EXTRA_FLAGS -X main.version=$VERSION" -o depcharge-linux .
depends_on:
- init
- gofmt
- golint
- test
- name: build-mac
image: golang:1-alpine
environment:
CGO_ENABLED: 0
GOOS: "darwin"
GOARCH: "amd64"
commands:
- export VERSION=$(cat VERSION.txt)
- if [ -n "${CI_TAG-}" ]; then export EXTRA_FLAGS="-w -s"; fi
- go build -ldflags="$EXTRA_FLAGS -X main.version=$VERSION" -o depcharge-linux .
depends_on:
- init
- gofmt
- golint
- test
when:
ref:
- refs/heads/master
- refs/tags/*
- name: build-win
image: golang:1-alpine
environment:
CGO_ENABLED: 0
GOOS: "windows"
GOARCH: "amd64"
commands:
- export VERSION=$(cat VERSION.txt)
- if [ -n "${CI_TAG-}" ]; then export EXTRA_FLAGS="-w -s"; fi
- go build -ldflags="$EXTRA_FLAGS -X main.version=$VERSION" -o depcharge-linux .
depends_on:
- init
- gofmt
- golint
- test
when:
ref:
- refs/heads/master
- refs/tags/*