build: use golangci-lint for code quality checks

This commit is contained in:
Nick Craig-Wood 2019-01-11 16:29:49 +00:00
parent 98120bb864
commit c1d9a1e174
3 changed files with 34 additions and 31 deletions

27
.golangci.yml Normal file
View File

@ -0,0 +1,27 @@
# golangci-lint configuration options
run:
build-tags:
- cmount
linters:
enable:
- deadcode
- errcheck
- goimports
- golint
- ineffassign
- structcheck
- varcheck
- govet
- unconvert
#- prealloc
#- maligned
disable-all: true
issues:
# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
max-per-linter: 0
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
max-same-issues: 0

View File

@ -1,14 +0,0 @@
{
"Enable": [
"deadcode",
"errcheck",
"goimports",
"golint",
"ineffassign",
"structcheck",
"varcheck",
"vet"
],
"EnableGC": true,
"Vendor": true
}

View File

@ -64,30 +64,20 @@ endif
# Do source code quality checks # Do source code quality checks
check: rclone check: rclone
ifdef FULL_TESTS ifdef FULL_TESTS
go vet $(BUILDTAGS) -printfuncs Debugf,Infof,Logf,Errorf ./... @# we still run go vet for -printfuncs which golangci-lint doesn't do yet
errcheck $(BUILDTAGS) ./... @# see: https://github.com/golangci/golangci-lint/issues/204
find . -name \*.go | grep -v /vendor/ | xargs goimports -d | grep . ; test $$? -eq 1 @echo "-- START CODE QUALITY REPORT -------------------------------"
go list ./... | xargs -n1 golint | grep -E -v '(StorageUrl|CdnUrl|ApplicationCredentialId)' ; test $$? -eq 1 @go vet $(BUILDTAGS) -printfuncs Debugf,Infof,Logf,Errorf ./...
@golangci-lint run ./...
@echo "-- END CODE QUALITY REPORT ---------------------------------"
else else
@echo Skipping source quality tests as version of go too old @echo Skipping source quality tests as version of go too old
endif endif
gometalinter_install:
go get -u github.com/alecthomas/gometalinter
gometalinter --install --update
# We aren't using gometalinter as the default linter yet because
# 1. it doesn't support build tags: https://github.com/alecthomas/gometalinter/issues/275
# 2. can't get -printfuncs working with the vet linter
gometalinter:
gometalinter ./...
# Get the build dependencies # Get the build dependencies
build_dep: build_dep:
ifdef FULL_TESTS ifdef FULL_TESTS
go get -u github.com/kisielk/errcheck go run bin/get-github-release.go -extract golangci-lint golangci/golangci-lint 'golangci-lint-.*-linux-amd64.tar.gz'
go get -u golang.org/x/tools/cmd/goimports
go get -u golang.org/x/lint/golint
endif endif
# Get the release dependencies # Get the release dependencies