...
1stages:
2 - test
3 - release
4
5variables:
6 COUCHDB_USER: admin
7 COUCHDB_PASSWORD: abc123
8
9test-x-sqlite:
10 parallel:
11 matrix:
12 - GOVER: ["1.22", "1.23rc2"]
13 stage: test
14 image: golang:$GOVER
15 script:
16 - cd x/sqlite
17 - go mod download
18 - go test -race -shuffle=on ./...
19
20linter-x-sqlite:
21 stage: test
22 image: golangci/golangci-lint:v1.57.2
23 script:
24 - cd x/sqlite
25 - go mod download
26 - golangci-lint run ./...
27 - go mod tidy && git diff --exit-code
28
29test:
30 parallel:
31 matrix:
32 - COUCHVER: ["2.2.0", "2.3.1", "3.0.1", "3.1.2", "3.2.3", "3.3.3"]
33 GOVER: ["1.17", "1.18", "1.19", "1.20", "1.21", "1.22", "1.23rc2"]
34 stage: test
35 image: golang:$GOVER
36 services:
37 - name: couchdb:$COUCHVER
38 alias: couch$COUCHVER
39 before_script:
40 - |
41 case $COUCHVER in
42 "2.2.0")
43 export KIVIK_TEST_DSN_COUCH22=http://$COUCHDB_USER:$COUCHDB_PASSWORD@couch2.2.0:5984/
44 ./script/complete_couch2.sh ${KIVIK_TEST_DSN_COUCH22}
45 ;;
46 "2.3.1")
47 export KIVIK_TEST_DSN_COUCH23=http://$COUCHDB_USER:$COUCHDB_PASSWORD@couch2.3.1:5984/
48 ./script/complete_couch2.sh ${KIVIK_TEST_DSN_COUCH23}
49 ;;
50 "3.0.1")
51 export KIVIK_TEST_DSN_COUCH30=http://$COUCHDB_USER:$COUCHDB_PASSWORD@couch3.0.1:5984/
52 ./script/complete_couch2.sh ${KIVIK_TEST_DSN_COUCH30}
53 ;;
54 "3.1.2")
55 export KIVIK_TEST_DSN_COUCH31=http://$COUCHDB_USER:$COUCHDB_PASSWORD@couch3.1.2:5984/
56 ./script/complete_couch2.sh ${KIVIK_TEST_DSN_COUCH31}
57 ;;
58 "3.2.3")
59 export KIVIK_TEST_DSN_COUCH32=http://$COUCHDB_USER:$COUCHDB_PASSWORD@couch3.2.3:5984/
60 ./script/complete_couch2.sh ${KIVIK_TEST_DSN_COUCH32}
61 ;;
62 "3.3.3")
63 export KIVIK_TEST_DSN_COUCH33=http://$COUCHDB_USER:$COUCHDB_PASSWORD@couch3.3.3:5984/
64 ./script/complete_couch2.sh ${KIVIK_TEST_DSN_COUCH33}
65 ;;
66 esac
67 script:
68 - go mod download
69 - go test -race -shuffle=on ./...
70
71linter:
72 stage: test
73 image: golangci/golangci-lint:v1.57.2
74 script:
75 - go mod download
76 - golangci-lint run ./...
77 - go mod tidy -compat=1.17 && git diff --exit-code
78 - go generate ./...
79 - git diff --exit-code
80
81coverage:
82 stage: test
83 image: golang:1.22
84 services: []
85 before_script:
86 - ""
87 script:
88 - go mod download
89 - ./script/coverage.sh
90
91.gopherjs_test: &gopherjs_test_template
92 image: golang:1.19
93 services:
94 - name: couchdb:3.3.3
95 alias: couch33
96 before_script:
97 - ./script/complete_couch2.sh ${KIVIK_TEST_DSN_COUCH33}
98 - curl -sL https://deb.nodesource.com/setup_${NODE_VER}.x | sed -e '/sleep/d' | bash -
99 - apt-get update -qq && apt-get install -y nodejs
100 script:
101 - cp "$NPM_PROFILE" package.json
102 - npm install -g npm@7.5.2 && npm update
103 - npm install
104 - npm install source-map-support
105 - mkdir -p /tmp/src
106 - ( cd /tmp && go install github.com/gopherjs/gopherjs@${GOPHERJS_TAG} )
107 - npm list
108 - gopherjs test `go list ./... | grep -v /cmd/`
109
110gopherjs1.17-pouchdb7:
111 <<: *gopherjs_test_template
112 image: golang:1.17
113 variables:
114 NODE_VER: 14
115 NPM_PROFILE: pouchdb/pouchdb7-package.json
116 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
117 GOPHERJS_TAG: v1.17.2
118 script:
119 - cp "$NPM_PROFILE" package.json
120 - npm install -g npm@7.5.2 && npm update
121 - npm install
122 - npm install source-map-support
123 - mkdir -p /tmp/src
124 - ( cd /tmp && go install github.com/gopherjs/gopherjs@${GOPHERJS_TAG} )
125 - npm install --force https://github.com/gopherjs/gopherjs#${GOPHERJS_TAG}
126 - npm list
127 - node --require syscall
128 - gopherjs test `go list ./... | grep -v /cmd/`
129
130gopherjs1.17-pouchdb8:
131 <<: *gopherjs_test_template
132 image: golang:1.17
133 variables:
134 NODE_VER: 14
135 NPM_PROFILE: pouchdb/pouchdb8-package.json
136 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
137 GOPHERJS_TAG: v1.17.2
138 script:
139 - cp "$NPM_PROFILE" package.json
140 - npm install -g npm@7.5.2 && npm update
141 - npm install
142 - npm install source-map-support
143 - mkdir -p /tmp/src
144 - ( cd /tmp && go install github.com/gopherjs/gopherjs@${GOPHERJS_TAG} )
145 - npm install --force https://github.com/gopherjs/gopherjs#${GOPHERJS_TAG}
146 - npm list
147 - node --require syscall
148 - gopherjs test `go list ./... | grep -v /cmd/`
149
150gopherjs1.17-pouchdb9:
151 <<: *gopherjs_test_template
152 image: golang:1.17
153 variables:
154 NODE_VER: 14
155 NPM_PROFILE: pouchdb/pouchdb9-package.json
156 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
157 GOPHERJS_TAG: v1.17.2
158 script:
159 - cp "$NPM_PROFILE" package.json
160 - npm install -g npm@7.5.2 && npm update
161 - npm install
162 - npm install source-map-support
163 - mkdir -p /tmp/src
164 - ( cd /tmp && go install github.com/gopherjs/gopherjs@${GOPHERJS_TAG} )
165 - npm install --force https://github.com/gopherjs/gopherjs#${GOPHERJS_TAG}
166 - npm list
167 - node --require syscall
168 - gopherjs test `go list ./... | grep -v /cmd/`
169
170gopherjs1.18-pouchdb7:
171 <<: *gopherjs_test_template
172 image: golang:1.18
173 variables:
174 NODE_VER: 18
175 NPM_PROFILE: pouchdb/pouchdb7-package.json
176 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
177 GOPHERJS_TAG: v1.18.0-beta3
178
179gopherjs1.18-pouchdb8:
180 <<: *gopherjs_test_template
181 image: golang:1.18
182 variables:
183 NODE_VER: 18
184 NPM_PROFILE: pouchdb/pouchdb8-package.json
185 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
186 GOPHERJS_TAG: v1.18.0-beta3
187
188gopherjs1.18-pouchdb9:
189 <<: *gopherjs_test_template
190 image: golang:1.18
191 variables:
192 NODE_VER: 18
193 NPM_PROFILE: pouchdb/pouchdb9-package.json
194 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
195 GOPHERJS_TAG: v1.18.0-beta3
196
197gopherjs1.19-pouchdb7:
198 <<: *gopherjs_test_template
199 variables:
200 NODE_VER: 18
201 NPM_PROFILE: pouchdb/pouchdb7-package.json
202 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
203 GOPHERJS_TAG: v1.19.0-beta1
204
205gopherjs1.19-pouchdb8:
206 <<: *gopherjs_test_template
207 variables:
208 NODE_VER: 18
209 NPM_PROFILE: pouchdb/pouchdb8-package.json
210 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
211 GOPHERJS_TAG: v1.19.0-beta1
212
213gopherjs1.19-pouchdb9:
214 <<: *gopherjs_test_template
215 variables:
216 NODE_VER: 18
217 NPM_PROFILE: pouchdb/pouchdb9-package.json
218 KIVIK_TEST_DSN_COUCH33: http://admin:abc123@couch33:5984/
219 GOPHERJS_TAG: v1.19.0-beta1
220
221.releaser: &release_template
222 image:
223 name: goreleaser/goreleaser:v1.25.1
224 entrypoint: [""]
225 variables:
226 GIT_DEPTH: 0
227
228release-test:
229 <<: *release_template
230 stage: test
231 script:
232 - goreleaser check
233
234release:
235 <<: *release_template
236 stage: release
237 script:
238 - goreleaser
239 only:
240 - /^v\d+\.\d+\.\d+/
View as plain text