variables: GOCACHE: "${CI_PROJECT_DIR}/_go/cache" before_script: - mkdir -p ${CI_PROJECT_DIR}/_go/{pkg,bin,cache} - rm -rf /go/pkg || true - mkdir -p /go - ln -s ${CI_PROJECT_DIR}/_go/pkg /go/pkg - ln -s ${CI_PROJECT_DIR}/_go/bin /go/bin cache: key: "$CI_COMMIT_REF_NAME" paths: - _go untracked: true stages: - deps - test deps: stage: deps image: golang:1.14 script: - go mod download test: stage: test dependencies: - deps image: golang:1.14 script: - go fmt $(go list ./...) - go vet $(go list ./...) - unset "${!CI@}" - CGO_ENABLED=1 go test -p 1 -mod=readonly -race -coverprofile=.testCoverage.txt -covermode=atomic -coverpkg=$(go list ./... | tr '\n' , | sed 's/,$//') ./... - go tool cover -html=.testCoverage.txt -o coverage.html - go tool cover -func=.testCoverage.txt artifacts: paths: - coverage.html