42 lines
906 B
YAML
42 lines
906 B
YAML
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.13
|
|
script:
|
|
- go get -mod=readonly
|
|
|
|
test:
|
|
stage: test
|
|
dependencies:
|
|
- deps
|
|
image: golang:1.13
|
|
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
|