lint target and workflow job
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>master
							parent
							
								
									7846381718
								
							
						
					
					
						commit
						26a586cf39
					
				|  | @ -18,6 +18,7 @@ jobs: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         target: |         target: | ||||||
|  |           - lint | ||||||
|           - validate-vendor |           - validate-vendor | ||||||
|     steps: |     steps: | ||||||
|       - |       - | ||||||
|  |  | ||||||
							
								
								
									
										16
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										16
									
								
								Makefile
								
								
								
								
							|  | @ -38,7 +38,7 @@ BINARIES=$(addprefix bin/,$(COMMANDS)) | ||||||
| TESTFLAGS ?= -v $(TESTFLAGS_RACE) | TESTFLAGS ?= -v $(TESTFLAGS_RACE) | ||||||
| TESTFLAGS_PARALLEL ?= 8 | TESTFLAGS_PARALLEL ?= 8 | ||||||
| 
 | 
 | ||||||
| .PHONY: all build binaries check clean test test-race test-full integration coverage validate-vendor vendor mod-outdated | .PHONY: all build binaries clean test test-race test-full integration coverage validate lint validate-vendor vendor mod-outdated | ||||||
| .DEFAULT: all | .DEFAULT: all | ||||||
| 
 | 
 | ||||||
| all: binaries | all: binaries | ||||||
|  | @ -48,10 +48,6 @@ version/version.go: | ||||||
| 	@echo "$(WHALE) $@" | 	@echo "$(WHALE) $@" | ||||||
| 	./version/version.sh > $@ | 	./version/version.sh > $@ | ||||||
| 
 | 
 | ||||||
| check: ## run all linters (TODO: enable "unused", "varcheck", "ineffassign", "unconvert", "staticheck", "goimports", "structcheck")
 |  | ||||||
| 	@echo "$(WHALE) $@" |  | ||||||
| 	@golangci-lint run |  | ||||||
| 
 |  | ||||||
| test: ## run tests, except integration test with test.short
 | test: ## run tests, except integration test with test.short
 | ||||||
| 	@echo "$(WHALE) $@" | 	@echo "$(WHALE) $@" | ||||||
| 	@go test ${GO_TAGS} -test.short ${TESTFLAGS} $(filter-out ${INTEGRATION_PACKAGE},${PACKAGES}) | 	@go test ${GO_TAGS} -test.short ${TESTFLAGS} $(filter-out ${INTEGRATION_PACKAGE},${PACKAGES}) | ||||||
|  | @ -101,8 +97,14 @@ clean: ## clean up binaries | ||||||
| 	@echo "$(WHALE) $@" | 	@echo "$(WHALE) $@" | ||||||
| 	@rm -f $(BINARIES) | 	@rm -f $(BINARIES) | ||||||
| 
 | 
 | ||||||
|  | validate: ## run all validators
 | ||||||
|  | 	docker buildx bake $@ | ||||||
|  | 
 | ||||||
|  | lint: ## run all linters
 | ||||||
|  | 	docker buildx bake $@ | ||||||
|  | 
 | ||||||
| validate-vendor: ## validate vendor
 | validate-vendor: ## validate vendor
 | ||||||
| 	docker buildx bake validate-vendor | 	docker buildx bake $@ | ||||||
| 
 | 
 | ||||||
| vendor: ## update vendor
 | vendor: ## update vendor
 | ||||||
| 	$(eval $@_TMP_OUT := $(shell mktemp -d -t buildx-output.XXXXXXXXXX)) | 	$(eval $@_TMP_OUT := $(shell mktemp -d -t buildx-output.XXXXXXXXXX)) | ||||||
|  | @ -112,4 +114,4 @@ vendor: ## update vendor | ||||||
| 	rm -rf $($@_TMP_OUT)/* | 	rm -rf $($@_TMP_OUT)/* | ||||||
| 
 | 
 | ||||||
| mod-outdated: ## check outdated dependencies
 | mod-outdated: ## check outdated dependencies
 | ||||||
| 	docker buildx bake mod-outdated | 	docker buildx bake $@ | ||||||
|  |  | ||||||
|  | @ -3,7 +3,12 @@ group "default" { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| group "validate" { | group "validate" { | ||||||
|   targets = ["validate-vendor"] |   targets = ["lint", "validate-vendor"] | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | target "lint" { | ||||||
|  |   dockerfile = "./dockerfiles/lint.Dockerfile" | ||||||
|  |   output = ["type=cacheonly"] | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| target "validate-vendor" { | target "validate-vendor" { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,16 @@ | ||||||
|  | # syntax=docker/dockerfile:1 | ||||||
|  | 
 | ||||||
|  | ARG GO_VERSION=1.17 | ||||||
|  | ARG GOLANGCI_LINT_VERSION=v1.44 | ||||||
|  | 
 | ||||||
|  | FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION}-alpine AS golangci-lint | ||||||
|  | 
 | ||||||
|  | FROM golang:${GO_VERSION}-alpine AS base | ||||||
|  | RUN apk add --no-cache gcc musl-dev | ||||||
|  | WORKDIR /src | ||||||
|  | 
 | ||||||
|  | FROM base | ||||||
|  | RUN --mount=type=bind,target=. \ | ||||||
|  |   --mount=type=cache,target=/root/.cache \ | ||||||
|  |   --mount=from=golangci-lint,source=/usr/bin/golangci-lint,target=/usr/bin/golangci-lint \ | ||||||
|  |   golangci-lint run | ||||||
		Loading…
	
		Reference in New Issue