-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
46 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,85 @@ | ||
# Heavily inspired by Lighthouse: https://github.com/sigp/lighthouse/blob/stable/Makefile | ||
# and Reth: https://github.com/paradigmxyz/reth/blob/main/Makefile | ||
.DEFAULT_GOAL := help | ||
|
||
VERSION := $(shell git describe --tags --always --dirty="-dev") | ||
|
||
all: build-portable | ||
##@ Help | ||
|
||
help: ## Display this help | ||
@awk 'BEGIN {FS = ":.*##"; printf "Usage:\n make \033[36m<target>\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) | ||
|
||
v: | ||
v: ## Show the current version | ||
@echo "Version: ${VERSION}" | ||
|
||
clean: | ||
##@ Building | ||
|
||
clean: ## Remove build artifacts | ||
rm -rf relayscan build/ | ||
|
||
build: | ||
build: ## Build the relayscan binary | ||
go build -trimpath -ldflags "-s -X cmd.Version=${VERSION} -X main.Version=${VERSION}" -v -o relayscan . | ||
|
||
build-portable: | ||
go build -trimpath -ldflags "-s -X cmd.Version=${VERSION} -X main.Version=${VERSION}" -v -o relayscan . | ||
docker-image: ## Build the relayscan docker image | ||
DOCKER_BUILDKIT=1 docker build --platform linux/amd64 --build-arg VERSION=${VERSION} . -t relayscan | ||
|
||
test: | ||
go test ./... | ||
generate-ssz: ## Generate SSZ serialization code | ||
rm -f common/ultrasoundbid_encoding.go | ||
sszgen --path common --objs UltrasoundStreamBid | ||
|
||
test-race: | ||
go test -race ./... | ||
##@ Production tasks | ||
|
||
update-bids-website: ## Update the bid archive website | ||
go run . service bidcollect --build-website --build-website-upload | ||
|
||
##@ Linting and Testing | ||
|
||
lint: | ||
lint: ## Lint the code | ||
gofmt -d -s . | ||
gofumpt -d -extra . | ||
go vet ./... | ||
staticcheck ./... | ||
golangci-lint run | ||
|
||
lt: lint test | ||
test: ## Run tests | ||
go test ./... | ||
|
||
test-race: ## Run tests with -race fla | ||
go test -race ./... | ||
|
||
gofumpt: | ||
lt: lint test ## Run lint and tests | ||
|
||
gofumpt: ## Run gofumpt on the code | ||
gofumpt -l -w -extra . | ||
|
||
fmt: | ||
fmt: ## Format the code with gofmt and gofumpt and gc | ||
gofmt -s -w . | ||
gofumpt -extra -w . | ||
gci write . | ||
go mod tidy | ||
|
||
cover: | ||
cover: ## Run tests with coverage | ||
go test -coverprofile=/tmp/go-sim-lb.cover.tmp ./... | ||
go tool cover -func /tmp/go-sim-lb.cover.tmp | ||
unlink /tmp/go-sim-lb.cover.tmp | ||
|
||
cover-html: | ||
cover-html: ## Run tests with coverage and output the HTML report | ||
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 relayscan | ||
##@ Development | ||
|
||
dev-website: ## Run the relayscan website service in development mode | ||
DB_DONT_APPLY_SCHEMA=1 go run . service website --dev | ||
|
||
generate-ssz: | ||
rm -f common/ultrasoundbid_encoding.go | ||
sszgen --path common --objs UltrasoundStreamBid | ||
dev-bids-website: ## Run the bidcollect website in development mode | ||
go run . service bidcollect --devserver | ||
|
||
update-bids-website: | ||
go run . service bidcollect --build-website --build-website-upload | ||
dev-postgres-start: ## Start a Postgres container for development | ||
docker run -d --name relayscan-postgres -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgres postgres | ||
|
||
dev-website: | ||
DB_DONT_APPLY_SCHEMA=1 go run . service website --dev | ||
dev-postgres-stop: ## Stop the Postgres container | ||
docker rm -f relayscan-postgres | ||
|
||
dev-bids-website: | ||
go run . service bidcollect --devserver | ||
dev-postgres-restart: dev-stop-postgres dev-start-postgres ## Restart the Postgres container (wipes the database) |