diff --git a/Makefile b/Makefile index 3c8f03e..7756184 100644 --- a/Makefile +++ b/Makefile @@ -1,50 +1,66 @@ +.DEFAULT_GOAL := build + VERSION := $(shell git describe --tags --always --dirty="-dev") -all: build +##@ Help -v: - @echo "Version: ${VERSION}" +.PHONY: help +help: ## Display this help. + @awk 'BEGIN {FS = ":.*##"; printf "Usage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) -clean-build: - rm -rf build/ +.PHONY: v +v: ## Show the current version + @echo "Version: ${VERSION}" -clean-dev: - rm -rf out/ test/ +##@ Building .PHONY: build -build: clean-build +build: clean-build ## build the binaries @mkdir -p build go build -trimpath -ldflags "-X main.version=${VERSION}" -v -o ./build/collect cmd/collect/* go build -trimpath -ldflags "-X main.version=${VERSION}" -v -o ./build/merge cmd/merge/* go build -trimpath -ldflags "-X main.version=${VERSION}" -v -o ./build/analyze cmd/analyze/* + go build -trimpath -ldflags "-X main.version=${VERSION}" -v -o ./build/website cmd/website/* .PHONY: website -website: +website: ## Build the website and upload to R2 go run cmd/website/main.go -build -upload -website-dev: +.PHONY: docker-image +docker-image: ## Build the docker image + docker build --platform linux/amd64 --build-arg VERSION=${VERSION} . -t mempool-dumpster + +##@ Development + +clean-build: ## Clean build files + rm -rf build/ + +clean-dev: ## Clean dev files + rm -rf out/ test/ + +website-dev: ## Run the website in dev mode (hot reloading templates) go run cmd/website/main.go -dev -test: +test: ## Run tests go test ./... -test-race: +test-race: ## Run tests with -race flag go test -race ./... -lint: +lint: ## Run all the linters gofmt -d -s . gofumpt -d -extra . go vet ./... staticcheck ./... golangci-lint run -fmt: +fmt: ## Run formatters (updates code in place) gofmt -s -w . gofumpt -extra -w . gci write . go mod tidy -lt: fmt lint test +lt: fmt lint test ## Run fmt, lint and test gofumpt: gofumpt -l -w -extra . @@ -58,6 +74,3 @@ cover-html: go test -coverprofile=/tmp/go-sim-lb.cover.tmp ./... go tool cover -html=/tmp/go-sim-lb.cover.tmp unlink /tmp/go-sim-lb.cover.tmp - -docker-image: - DOCKER_BUILDKIT=1 docker build --platform linux/amd64 --build-arg VERSION=${VERSION} . -t your-project