feat(tests): replace gometalinter with golangci-lint

Signed-off-by: Adam Reese <adam@reese.io>
pull/5421/head
Adam Reese 5 years ago
parent de1cbf2ad3
commit 21d3a40f3b
No known key found for this signature in database
GPG Key ID: 06F35E60A7A18DD6

@ -0,0 +1,27 @@
run:
deadline: 2m
linters:
disable-all: true
enable:
- deadcode
- dupl
- gofmt
- goimports
- golint
- gosimple
- govet
- ineffassign
- misspell
- nakedret
- structcheck
- unused
- varcheck
linters-settings:
gofmt:
simplify: true
goimports:
local-prefixes: k8s.io/helm
dupl:
threshold: 400

@ -3,10 +3,11 @@ DIST_DIRS := find * -type d -exec
TARGETS := darwin/amd64 linux/amd64 linux/386 linux/arm linux/arm64 linux/ppc64le windows/amd64
BINNAME ?= helm
GOPATH = $(shell go env GOPATH)
DEP = $(GOPATH)/bin/dep
GOX = $(GOPATH)/bin/gox
GOIMPORTS = $(GOPATH)/bin/goimports
GOPATH = $(shell go env GOPATH)
DEP = $(GOPATH)/bin/dep
GOX = $(GOPATH)/bin/gox
GOIMPORTS = $(GOPATH)/bin/goimports
GOLANGCI_LINT = $(GOPATH)/bin/golangci-lint
# go option
PKG := ./...
@ -70,8 +71,8 @@ test-unit: vendor
HELM_HOME=/no_such_dir go test $(GOFLAGS) -run $(TESTS) $(PKG) $(TESTFLAGS)
.PHONY: test-style
test-style: vendor
@scripts/validate-go.sh
test-style: vendor $(GOLANGCI_LINT)
$(GOLANGCI_LINT) run
@scripts/validate-license.sh
.PHONY: verify-docs
@ -98,6 +99,9 @@ $(DEP):
$(GOX):
go get -u github.com/mitchellh/gox
$(GOLANGCI_LINT):
go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
$(GOIMPORTS):
go get -u golang.org/x/tools/cmd/goimports

@ -40,16 +40,12 @@ type options struct {
force bool
// if set, skip running hooks
disableHooks bool
// release list options are applied directly to the list releases request
listReq hapi.ListReleasesRequest
// release install options are applied directly to the install release request
instReq hapi.InstallReleaseRequest
// release update options are applied directly to the update release request
updateReq hapi.UpdateReleaseRequest
// release uninstall options are applied directly to the uninstall release request
uninstallReq hapi.UninstallReleaseRequest
// release get status options are applied directly to the get release status request
statusReq hapi.GetReleaseStatusRequest
// release get content options are applied directly to the get release content request
contentReq hapi.GetReleaseContentRequest
// release rollback options are applied directly to the rollback release request

@ -141,7 +141,7 @@ func (p *Plugin) PrepareCommand(extraArgs []string) (string, []string, error) {
if platCmdLen == 0 || parts == nil {
parts = strings.Split(os.ExpandEnv(p.Metadata.Command), " ")
}
if parts == nil || len(parts) == 0 || parts[0] == "" {
if len(parts) == 0 || parts[0] == "" {
return "", nil, fmt.Errorf("No plugin command is applicable")
}

@ -25,7 +25,7 @@ import (
)
var (
validPortRegEx = regexp.MustCompile("^([1-9]\\d{0,3}|0|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$") // adapted from https://stackoverflow.com/a/12968117
validPortRegEx = regexp.MustCompile(`^([1-9]\d{0,3}|0|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$`) // adapted from https://stackoverflow.com/a/12968117
errEmptyRepo = errors.New("parsed repo was empty")
errTooManyColons = errors.New("ref may only contain a single colon character (:) unless specifying a port number")
)

@ -136,11 +136,3 @@ func (k *kindSorter) Less(i, j int) bool {
// sort different kinds
return first < second
}
// SortByKind sorts manifests in InstallOrder
func SortByKind(manifests []Manifest) []Manifest {
ordering := InstallOrder
ks := newKindSorter(manifests, ordering)
sort.Sort(ks)
return ks.manifests
}

@ -1,51 +0,0 @@
#!/usr/bin/env bash
# Copyright The Helm Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -euo pipefail
exit_code=0
if ! hash gometalinter.v1 2>/dev/null ; then
go get -u gopkg.in/alecthomas/gometalinter.v1
gometalinter.v1 --install
fi
echo
echo "==> Running static validations <=="
# Run linters that should return errors
gometalinter.v1 \
--disable-all \
--enable deadcode \
--severity deadcode:error \
--enable gofmt \
--enable ineffassign \
--enable misspell \
--enable vet \
--tests \
--vendor \
--deadline 60s \
./... || exit_code=1
echo
echo "==> Running linters <=="
# Run linters that should return warnings
gometalinter.v1 \
--disable-all \
--enable golint \
--vendor \
--deadline 60s \
./... || :
exit $exit_code
Loading…
Cancel
Save