65 lines
2.4 KiB
Makefile
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
|