From f6dfa5d0043aeaa616c16f8babb64c0d0e8f72dd Mon Sep 17 00:00:00 2001 From: Jaime Martinez Date: Thu, 21 May 2020 10:52:19 +1000 Subject: Add .golangci.yml linter configuration As part of https://gitlab.com/gitlab-org/gitlab-pages/-/issues/385 we have introduced the use of a custom `.golangci.yml` file with some custom rules for linting. This replaces the need of downloading and using `golint`, `gofmt` `go vet` and `gocyclo` manually. We take advantage of the custom `golangci-lint` docker image as stated in the [Automatic lintinb] (https://docs.gitlab.com/ee/development/go_guide/#automatic-linting) section of the Go standards and style guidelines. This iteration enables a subset of linters, with the remaining of them enabled on a separate MR as described in the issue above. The main changes introduced by this linter include: - gosec: potential hardcoded credentials - goconst: DRY by declaring and using constants - gosimple: reduce statements complexity and improve return statements --- .gitlab-ci.yml | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to '.gitlab-ci.yml') diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d640f08b..01732f45 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -86,19 +86,33 @@ download deps: - go.mod - go.sum -verify: - extends: .go-mod-cache +cover: stage: test + extends: .go-mod-cache needs: ['download deps'] script: - - make setup - - make generate-mocks - - make verify - - make cover + - make setup + - make generate-mocks + - make cover artifacts: paths: - coverage.html +lint: + extends: .go-mod-cache + needs: ['download deps'] + stage: test + image: registry.gitlab.com/gitlab-org/gitlab-build-images:golangci-lint-alpine + script: + # Write the code coverage report to gl-code-quality-report.json + # and print linting issues to stdout in the format: path/to/file:line description + - golangci-lint run --out-format code-climate | tee gl-code-quality-report.json | jq -r '.[] | "\(.location.path):\(.location.lines.begin) \(.description)"' + artifacts: + reports: + codequality: gl-code-quality-report.json + paths: + - gl-code-quality-report.json + test:1.12: extends: .tests image: golang:1.12 -- cgit v1.2.3