include: - template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml' image: golang:1.19.4 stages: - deps - test run-pre-commit: stage: .pre image: golang:1.19 variables: PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit cache: - key: files: - .pre-commit-config.yaml paths: - ${PRE_COMMIT_HOME} before_script: - apt update && apt install -y python3 python3-pip ruby git - go install github.com/lietu/go-pre-commit@latest - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.49.0 - pip install pre-commit script: - pre-commit run --all-files deps: stage: deps script: - go mod download test: stage: test dependencies: - deps script: - CGO_ENABLED=1 go test -mod=readonly -race -coverprofile=coverage.txt -covermode=atomic -coverpkg=$(go list ./... | tr '\n' , | sed 's/,$//') ./... - go tool cover -html=coverage.txt -o coverage.html - go tool cover -func=coverage.txt - curl -Os https://uploader.codecov.io/latest/linux/codecov - chmod +x codecov - ./codecov -t ${CODECOV_TOKEN} -R $CI_PROJECT_DIR -C $CI_COMMIT_SHA -r $CI_PROJECT_PATH vulnerabilities: stage: test image: golang:1.19.4 script: - go install golang.org/x/vuln/cmd/govulncheck@latest - govulncheck ./...