--- image: golang:alpine variables: REPO_NAME: gitlab.com/$CI_PROJECT_PATH CGO_ENABLED: "0" cache: key: ${CI_COMMIT_REF_SLUG} paths: - /go/pkg/mod - /var/cache/apk before_script: - mkdir -p $GOPATH/src/$(dirname $REPO_NAME) - ln -svf $CI_PROJECT_DIR $GOPATH/src/$REPO_NAME - cd $GOPATH/src/$REPO_NAME stages: - test test: stage: test before_script: - go get gotest.tools/gotestsum script: - gotestsum --junitfile report.xml --format testname artifacts: when: always reports: junit: report.xml cover: stage: test before_script: - go get github.com/t-yuki/gocover-cobertura script: - go test -coverprofile=coverage.txt -covermode count $REPO_NAME/... - gocover-cobertura < coverage.txt > coverage.xml artifacts: reports: cobertura: coverage.xml lint: image: golangci/golangci-lint stage: test script: - golangci-lint run $REPO_NAME/... allow_failure: true