diff options
author | Jaime Martinez <jmartinez@gitlab.com> | 2020-05-21 03:52:19 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2020-05-28 04:10:14 +0300 |
commit | f6dfa5d0043aeaa616c16f8babb64c0d0e8f72dd (patch) | |
tree | f8cbab7f2c4a30c07f827a50d7877c388e18616f /.gitlab-ci.yml | |
parent | 559311801a1e9114f8dee71faa388dcefab3dcbe (diff) |
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
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 26 |
1 files changed, 20 insertions, 6 deletions
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 |