33 lines
990 B
Makefile
33 lines
990 B
Makefile
# Makefile for royalroadupdates — builds entirely inside Docker.
|
|
|
|
PWD := $(shell pwd)
|
|
DOCKER_RUN := docker run --rm -v $(PWD):/src -w /src golang:1.22
|
|
|
|
.PHONY: build check clean
|
|
|
|
build:
|
|
$(DOCKER_RUN) sh -c '\
|
|
set -e; \
|
|
if [ -f .env ]; then . ./.env; fi; \
|
|
if [ -z "$$PB_URL" ] || [ -z "$$PB_USER" ] || [ -z "$$PB_PASSWORD" ] || [ -z "$$PB_CATEGORY" ]; then \
|
|
echo "error: .env is missing or one of PB_URL / PB_USER / PB_PASSWORD / PB_CATEGORY is not set"; \
|
|
exit 1; \
|
|
fi; \
|
|
go build \
|
|
-ldflags "-X main.PBURL=$${PB_URL} -X main.PBUser=$${PB_USER} -X main.PBPassword=$${PB_PASSWORD} -X main.PBCategory=$${PB_CATEGORY}" \
|
|
-o royalroadupdates \
|
|
./cmd/royalroadupdates'
|
|
|
|
check:
|
|
$(DOCKER_RUN) sh -c '\
|
|
set -e; \
|
|
if [ -f .env ]; then . ./.env; fi; \
|
|
export PB_URL PB_USER PB_PASSWORD PB_CATEGORY; \
|
|
d=$$(gofmt -l .); \
|
|
if [ -n "$$d" ]; then echo "format errors:"; echo "$$d"; exit 1; fi; \
|
|
go vet ./...; \
|
|
go test ./...'
|
|
|
|
clean:
|
|
rm -f royalroadupdates
|