lint target and workflow job

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax 2022-05-03 12:51:31 +02:00
parent 7846381718
commit 26a586cf39
No known key found for this signature in database
GPG key ID: 3248E46B6BB8C7F7
4 changed files with 32 additions and 8 deletions

View file

@ -18,6 +18,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
target: target:
- lint
- validate-vendor - validate-vendor
steps: steps:
- -

View file

@ -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 $@

View file

@ -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" {

View file

@ -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