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