forked from TrueCloudLab/distribution
Merge pull request #3640 from crazy-max/lint
lint target and workflow job
This commit is contained in:
commit
7a6b9e3042
6 changed files with 32 additions and 25 deletions
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -46,9 +46,7 @@ jobs:
|
|||
working-directory: ./src/github.com/distribution/distribution
|
||||
run: |
|
||||
DCO_VERBOSITY=-q script/validate/dco
|
||||
GO111MODULE=on script/setup/install-dev-tools
|
||||
go build -i .
|
||||
make check
|
||||
make build
|
||||
make binaries
|
||||
if [ "$GOOS" = "linux" ]; then make coverage ; fi
|
||||
|
|
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
|
|
@ -1,15 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
GOLANGCI_LINT_VERSION="v1.44.0"
|
||||
|
||||
#
|
||||
# Install developer tools to $GOBIN (or $GOPATH/bin if unset)
|
||||
#
|
||||
set -eu -o pipefail
|
||||
|
||||
# Enable Go modules
|
||||
export GO111MODULE=on
|
||||
|
||||
# prevent updating go.mod of the project
|
||||
cd /tmp
|
||||
go get "github.com/golangci/golangci-lint/cmd/golangci-lint@${GOLANGCI_LINT_VERSION}"
|
Loading…
Reference in a new issue