https://github.com/bluesky-social/goat but with tangled's CI
1# base path for Lexicon document tree (for lexgen)
2LEXDIR?=../atproto/lexicons
3
4# https://github.com/golang/go/wiki/LoopvarExperiment
5export GOEXPERIMENT := loopvar
6
7.PHONY: help
8help: ## Print info about all commands
9 @echo "Commands:"
10 @echo
11 @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[01;32m%-20s\033[0m %s\n", $$1, $$2}'
12
13.PHONY: build
14build: ## Build all executables
15 go build .
16
17.PHONY: all
18all: build
19
20.PHONY: test
21test: ## Run tests
22 go test ./...
23
24.PHONY: coverage-html
25coverage-html: ## Generate test coverage report and open in browser
26 go test ./... -coverpkg=./... -coverprofile=test-coverage.out
27 go tool cover -html=test-coverage.out
28
29.PHONY: lint
30lint: ## Verify code style and run static checks
31 go vet ./...
32 test -z $(gofmt -l ./...)
33
34.PHONY: fmt
35fmt: ## Run syntax re-formatting (modify in place)
36 go fmt ./...