diff options
| author | Abhinav Gupta <mail@abhinavg.net> | 2023-10-21 16:59:14 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-21 16:59:14 -0700 |
| commit | 4fe6763faf645568b2d1d3fe4cdcfcf6b12cf7e6 (patch) | |
| tree | d823419085562ed0442d061ffdcb519ebdb410b7 /Makefile | |
| parent | 5fbb57ed966154dc29730e0ce62824e1b577d8cb (diff) | |
| download | sally-4fe6763faf645568b2d1d3fe4cdcfcf6b12cf7e6.tar.gz | |
ci: Use golangci-lint for linting (#121)
Instead of hand-managing and running linters, use golangci-lint.
Along with the golangci-lint defaults,
enable a couple other linters we generally agree with.
See also uber-go/zap#1323 for a similar change.
As a result of this, we can:
- Drop the dependabot for tools
- Run the lint job in parallel with build/test
- Simplify the Makefile
Diffstat (limited to '')
| -rw-r--r-- | Makefile | 60 |
1 files changed, 23 insertions, 37 deletions
@@ -1,61 +1,47 @@ -export GOBIN = $(shell pwd)/bin +# Directory containing the Makefile. +PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) + +export GOBIN = $(PROJECT_ROOT)/bin export PATH := $(GOBIN):$(PATH) GO_FILES = $(shell find . \ -path '*/.*' -prune -o \ '(' -type f -a -name '*.go' ')' -print) -REVIVE = bin/revive -STATICCHECK = bin/staticcheck -TOOLS = $(REVIVE) $(STATICCHECK) - TEST_FLAGS ?= -race .PHONY: all -all: lint install test +all: lint build test .PHONY: lint -lint: gofmt revive staticcheck - -.PHONY: gofmt -gofmt: - $(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX)) - @gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true - @[ ! -s "$(FMT_LOG)" ] || \ - (echo "gofmt failed. Please reformat the following files:" | \ - cat - $(FMT_LOG) && false) - -.PHONY: staticcheck -staticcheck: $(STATICCHECK) - $(STATICCHECK) ./... - -$(STATICCHECK): tools/go.mod - cd tools && go install honnef.co/go/tools/cmd/staticcheck - -.PHONY: revive -revive: $(REVIVE) - $(REVIVE) -set_exit_status ./... +lint: golangci-lint tidy-lint -$(REVIVE): tools/go.mod - cd tools && go install github.com/mgechev/revive - -.PHONY: install -install: +.PHONY: build +build: go install . .PHONY: test test: go test $(TEST_FLAGS) ./... +.PHONY: build +run: build + sally + .PHONY: cover cover: go test $(TEST_FLAGS) -coverprofile=cover.out -covermode=atomic -coverpkg=./... ./... go tool cover -html=cover.out -o cover.html -.PHONY: clean -clean: - rm -rf _tmp +.PHONY: golangci-lint +golangci-lint: + golangci-lint run -.PHONY: install -run: install - sally +.PHONY: tidy +tidy: + go mod tidy + +.PHONY: tidy-lint +tidy-lint: + go mod tidy + git diff --exit-code -- go.mod go.sum |