forked from TrueCloudLab/distribution
lint target and workflow job
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
7846381718
commit
26a586cf39
4 changed files with 32 additions and 8 deletions
1
.github/workflows/validate.yml
vendored
1
.github/workflows/validate.yml
vendored
|
@ -18,6 +18,7 @@ jobs:
|
|||
fail-fast: false
|
||||
matrix:
|
||||
target:
|
||||
- lint
|
||||
- validate-vendor
|
||||
steps:
|
||||
-
|
||||
|
|
16
Makefile
16
Makefile
|
@ -38,7 +38,7 @@ BINARIES=$(addprefix bin/,$(COMMANDS))
|
|||
TESTFLAGS ?= -v $(TESTFLAGS_RACE)
|
||||
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
|
||||
|
||||
all: binaries
|
||||
|
@ -48,10 +48,6 @@ version/version.go:
|
|||
@echo "$(WHALE) $@"
|
||||
./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
|
||||
@echo "$(WHALE) $@"
|
||||
@go test ${GO_TAGS} -test.short ${TESTFLAGS} $(filter-out ${INTEGRATION_PACKAGE},${PACKAGES})
|
||||
|
@ -101,8 +97,14 @@ clean: ## clean up binaries
|
|||
@echo "$(WHALE) $@"
|
||||
@rm -f $(BINARIES)
|
||||
|
||||
validate: ## run all validators
|
||||
docker buildx bake $@
|
||||
|
||||
lint: ## run all linters
|
||||
docker buildx bake $@
|
||||
|
||||
validate-vendor: ## validate vendor
|
||||
docker buildx bake validate-vendor
|
||||
docker buildx bake $@
|
||||
|
||||
vendor: ## update vendor
|
||||
$(eval $@_TMP_OUT := $(shell mktemp -d -t buildx-output.XXXXXXXXXX))
|
||||
|
@ -112,4 +114,4 @@ vendor: ## update vendor
|
|||
rm -rf $($@_TMP_OUT)/*
|
||||
|
||||
mod-outdated: ## check outdated dependencies
|
||||
docker buildx bake mod-outdated
|
||||
docker buildx bake $@
|
||||
|
|
|
@ -3,7 +3,12 @@ group "default" {
|
|||
}
|
||||
|
||||
group "validate" {
|
||||
targets = ["validate-vendor"]
|
||||
targets = ["lint", "validate-vendor"]
|
||||
}
|
||||
|
||||
target "lint" {
|
||||
dockerfile = "./dockerfiles/lint.Dockerfile"
|
||||
output = ["type=cacheonly"]
|
||||
}
|
||||
|
||||
target "validate-vendor" {
|
||||
|
|
16
dockerfiles/lint.Dockerfile
Normal file
16
dockerfiles/lint.Dockerfile
Normal 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
|
Loading…
Reference in a new issue