From 3eca7dfd7b266be551a77140d2f4b341edcb88ac Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Fri, 25 Aug 2023 16:09:43 +0200 Subject: [PATCH] Replace check targets with golangci-lint Signed-off-by: Evan Lezar --- .gitlab-ci.yml | 36 ++++-------------------------------- Makefile | 30 +++++------------------------- docker/Dockerfile.devel | 2 ++ 3 files changed, 11 insertions(+), 57 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ee74ce1d..2b2b5dfe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,43 +25,15 @@ build-dev-image: .requires-build-image: image: "${BUILDIMAGE}" + needs: + - job: build-dev-image -.go-check: +check: extends: - .requires-build-image stage: go-checks - -fmt: - extends: - - .go-check script: - - make assert-fmt - -vet: - extends: - - .go-check - script: - - make vet - -lint: - extends: - - .go-check - script: - - make lint - allow_failure: true - -ineffassign: - extends: - - .go-check - script: - - make ineffassign - allow_failure: true - -misspell: - extends: - - .go-check - script: - - make misspell + - make check go-build: extends: diff --git a/Makefile b/Makefile index 7f7d375b..420b0a5a 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ EXAMPLE_TARGETS := $(patsubst %,example-%, $(EXAMPLES)) CMDS := $(patsubst ./cmd/%/,%,$(sort $(dir $(wildcard ./cmd/*/)))) CMD_TARGETS := $(patsubst %,cmd-%, $(CMDS)) -CHECK_TARGETS := assert-fmt vet lint ineffassign misspell +CHECK_TARGETS := golangci-lint MAKE_TARGETS := binaries build check fmt lint-internal test examples cmds coverage generate licenses $(CHECK_TARGETS) TARGETS := $(MAKE_TARGETS) $(EXAMPLE_TARGETS) $(CMD_TARGETS) @@ -78,30 +78,8 @@ fmt: go list -f '{{.Dir}}' $(MODULE)/... \ | xargs gofmt -s -l -w -assert-fmt: - go list -f '{{.Dir}}' $(MODULE)/... \ - | xargs gofmt -s -l > fmt.out - @if [ -s fmt.out ]; then \ - echo "\nERROR: The following files are not formatted:\n"; \ - cat fmt.out; \ - rm fmt.out; \ - exit 1; \ - else \ - rm fmt.out; \ - fi - -ineffassign: - ineffassign $(MODULE)/... - -lint: -# We use `go list -f '{{.Dir}}' $(MODULE)/...` to skip the `vendor` folder. - go list -f '{{.Dir}}' $(MODULE)/... | xargs golint -set_exit_status - -misspell: - misspell $(MODULE)/... - -vet: - go vet $(MODULE)/... +golangci-lint: + golangci-lint run ./... licenses: go-licenses csv $(MODULE)/... @@ -141,6 +119,7 @@ $(DOCKER_TARGETS): docker-%: .build-image $(DOCKER) run \ --rm \ -e GOCACHE=/tmp/.cache \ + -e GOLANGCI_LINT_CACHE=/tmp/.cache \ -v $(PWD):$(PWD) \ -w $(PWD) \ --user $$(id -u):$$(id -g) \ @@ -154,6 +133,7 @@ PHONY: .shell --rm \ -ti \ -e GOCACHE=/tmp/.cache \ + -e GOLANGCI_LINT_CACHE=/tmp/.cache \ -v $(PWD):$(PWD) \ -w $(PWD) \ --user $$(id -u):$$(id -g) \ diff --git a/docker/Dockerfile.devel b/docker/Dockerfile.devel index 20d09b60..a3aa25d0 100644 --- a/docker/Dockerfile.devel +++ b/docker/Dockerfile.devel @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. ARG GOLANG_VERSION=x.x.x +ARG GOLANGCI_LINT_VERSION=v1.54.1 FROM golang:${GOLANG_VERSION} RUN go install golang.org/x/lint/golint@6edffad5e6160f5949cdefc81710b2706fbcd4f6 @@ -19,3 +20,4 @@ RUN go install github.com/matryer/moq@latest RUN go install github.com/gordonklaus/ineffassign@d2c82e48359b033cde9cf1307f6d5550b8d61321 RUN go install github.com/client9/misspell/cmd/misspell@latest RUN go install github.com/google/go-licenses@latest +RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin ${GOLANGCI_LINT_VERSION} \ No newline at end of file