core/Makefile
2024-03-13 21:23:46 +03:00

65 lines
2.4 KiB
Makefile

GOCMD=go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean
GOTEST=$(GOCMD) test
COMMIT?=$(shell git rev-parse --short HEAD)
BUILD_TIME?=$(shell date -u '+%Y-%m-%d_%H:%M:%S')
GOOS?=linux
GOARCH?=amd64
DOCKER_REGISTRY=yourRegistryHost:<port>
BINARY_NAME=$(shell basename `pwd`)
PORT?=1488
SHELL = /bin/bash
LDFLAGS=-s -w -X github.com/skeris/appInit/version.Release=${shell git describe --tags --abbrev=0} \
-X github.com/skeris/appInit/version.Commit=${COMMIT} -X github.com/skeris/appInit/version.BuildTime=${BUILD_TIME}
all: compile run
clean:
rm -f $(BINARY_NAME)
rm -f ./worker/worker
compile: clean
CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} $(GOBUILD) -ldflags "${LDFLAGS}" -o ${BINARY_NAME}
CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} $(GOBUILD) -ldflags "${LDFLAGS}" -o ./worker/worker
run: compile
./$(BINARY_NAME)
container: compile
docker build -t $(BINARY_NAME):${shell git describe --tags --abbrev=0} .
docker build -t $(BINARY_NAME)-worker:${shell git describe --tags --abbrev=0} ./worker
docker-push: container
docker tag $(BINARY_NAME) $(DOCKER_REGISTRY)/$(BINARY_NAME)
docker tag $(BINARY_NAME)-worker $(DOCKER_REGISTRY)/$(BINARY_NAME)-worker
pull:
docker pull $(DOCKER_REGISTRY)/$(BINARY_NAME)
docker pull $(DOCKER_REGISTRY)/$(BINARY_NAME)-worker
docker tag $(DOCKER_REGISTRY)/$(BINARY_NAME) $(BINARY_NAME)
docker tag $(DOCKER_REGISTRY)/$(BINARY_NAME)-worker $(BINARY_NAME)-worker
run-container:
docker run --rm --name squiz --network host -p 1488:1488 $(BINARY_NAME):latest
test:
$(GOTEST) -v -race ./...
commit-all:
git add -A
git commit -a
git push
push-new-release: commit-all
git tag ${shell git describe --tags --abbrev=0 | awk -F '.' '{print "v"$$1+1".0.0"}'}
git push --tags
push-new-feature: commit-all
git tag ${shell git describe --tags --abbrev=0 | awk -F '.' '{print $$1"."$$2+1".0"}'}
git push --tags
push-new-state: commit-all
git tag ${shell git describe --tags --abbrev=0 | awk -F '.' '{print $$1"."$$2"."$$3+1}'}
git push --tags
benchmark:
mv ./tests/new.txt ./tests/old.txt
go test -run=NONE -bench=. -benchmem ./tests -test.short > ./tests/new.txt
benchstat -html ./tests/old.txt ./tests/new.txt > benchmark.html
# show full set of messages
test-in-docker-debug:
docker-compose -f deployments/test/docker-compose.yaml up --build --force-recreate
# show only relevant messages
test-in-docker:
docker-compose -f deployments/test/docker-compose.yaml up --build --force-recreate --exit-code-from test-squiz 2>/dev/null | grep ^test-squiz