image: golang:latest stages: - test validate lint: stage: test script: - go get -u golang.org/x/lint/golint - golint -set_exit_status ./... execute tests: stage: test script: - go test ./... race detection: stage: test script: - go test -race ./... code coverage: stage: test script: - go test -covermode=count -coverprofile coverage.cov ./... - go tool cover -func=coverage.cov - mkdir $CI_PROJECT_DIR/report - go tool cover -html=coverage.cov -o $CI_PROJECT_DIR/report/coverage.html coverage: '/\(statements\)\W+\d+\.\d+%/' artifacts: paths: - report/ codecov.io: stage: test script: - go test -race -coverprofile=coverage.txt -covermode=atomic ./... - bash <(curl -s https://codecov.io/bash)