...

Text file src/github.com/go-kivik/kivik/v4/.gitlab-ci.yml

Documentation: github.com/go-kivik/kivik/v4

     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