Skip to content

Commit

Permalink
makefile plus
Browse files Browse the repository at this point in the history
  • Loading branch information
metachris committed Jul 25, 2024
1 parent 20220ff commit f997bf2
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 33 deletions.
73 changes: 46 additions & 27 deletions Makefile
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-wipe: dev-postgres-stop dev-postgres-start ## Restart the Postgres container (wipes the database)
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ Start by filling the DB with relay data (delivered payloads), and checking it:
# Copy .env.example to .env.local, update ETH_NODE_URI and source it
source .env.local

# Start Postgres
docker run -d --name relayscan-postgres -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgres postgres
# Start Postgres Docker container
make dev-postgres-start

# Query only a single relay, and for the shortest time possible
go run . core data-api-backfill --relay fb --min-slot -1
Expand All @@ -105,8 +105,11 @@ go run . core check-payload-value
# Can also check a single slot only:
go run . core check-payload-value --slot _N_

# Reset DB? Remove and restart the Docker container
docker rm -f relayscan-postgres
# Reset DB
dev-postgres-wipe

# See the Makefile for more commands
make help
```

For linting and testing:
Expand All @@ -117,11 +120,13 @@ go install mvdan.cc/gofumpt@latest
go install honnef.co/go/tools/cmd/staticcheck@v0.4.3
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.2

# Lint, test and build
# Lint and test
make lint
make test
make test-race
make build

# Format the code
make fmt
```


Expand Down

0 comments on commit f997bf2

Please sign in to comment.