################################################################################ ### Required Variables ### ################################################################################ ifndef DOCKER $(error DOCKER not set) endif ifndef BUILD_DIR $(error BUILD_DIR not set) endif ################################################################################ ### Lint Settings ### ################################################################################ LINT_FROM_REV ?= $(shell git merge-base origin/master HEAD) GOLANGCI_VERSION ?= $(shell cat .golangci-version) GOLANGCI_IMAGE_TAG ?= golangci/golangci-lint:$(GOLANGCI_VERSION) GOLANGCI_DIR ?= $(CURDIR)/$(BUILD_DIR)/.golangci-lint GOLANGCI_CACHE_DIR ?= $(GOLANGCI_DIR)/$(GOLANGCI_VERSION)-cache GOLANGCI_MOD_CACHE_DIR ?= $(GOLANGCI_DIR)/go-mod ################################################################################ ### Lint Target ### ################################################################################ .PHONY: lint lint: $(GOLANGCI_CACHE_DIR) $(GOLANGCI_MOD_CACHE_DIR) @echo "Running lint from rev $(LINT_FROM_REV), use LINT_FROM_REV var to override." $(DOCKER) run -t --rm \ -v $(GOLANGCI_CACHE_DIR):/root/.cache \ -v $(GOLANGCI_MOD_CACHE_DIR):/go/pkg/mod \ -v $(CURDIR):/app \ -w /app \ $(GOLANGCI_IMAGE_TAG) \ golangci-lint run -v --new-from-rev $(LINT_FROM_REV) $(GOLANGCI_CACHE_DIR): @mkdir -p $@ $(GOLANGCI_MOD_CACHE_DIR): @mkdir -p $@