github.com/go-kivik/kivik/v4@v4.3.2/.gitlab-ci.yml (about) 1 stages: 2 - test 3 - release 4 5 variables: 6 COUCHDB_USER: admin 7 COUCHDB_PASSWORD: abc123 8 9 test-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 20 linter-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 29 test: 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 71 linter: 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 81 coverage: 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 110 gopherjs1.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 130 gopherjs1.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 150 gopherjs1.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 170 gopherjs1.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 179 gopherjs1.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 188 gopherjs1.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 197 gopherjs1.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 205 gopherjs1.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 213 gopherjs1.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 228 release-test: 229 <<: *release_template 230 stage: test 231 script: 232 - goreleaser check 233 234 release: 235 <<: *release_template 236 stage: release 237 script: 238 - goreleaser 239 only: 240 - /^v\d+\.\d+\.\d+/