2019-10-11 00:20:42 +00:00
|
|
|
DOCKER_TAG ?= minitor-go-${USER}
|
2020-01-10 21:58:17 +00:00
|
|
|
GIT_TAG_NAME := $(shell git tag -l --contains HEAD)
|
|
|
|
GIT_SHA := $(shell git rev-parse HEAD)
|
|
|
|
VERSION := $(if $(GIT_TAG_NAME),$(GIT_TAG_NAME),$(GIT_SHA))
|
|
|
|
|
|
|
|
.PHONY: all
|
|
|
|
all: minitor-linux-amd64 minitor-linux-arm minitor-linux-arm64
|
2019-10-11 00:20:42 +00:00
|
|
|
|
2019-11-15 19:25:21 +00:00
|
|
|
.PHONY: default
|
2019-10-03 19:56:03 +00:00
|
|
|
default: test
|
|
|
|
|
|
|
|
.PHONY: build
|
2020-01-10 21:58:17 +00:00
|
|
|
build: minitor
|
2019-10-03 19:56:03 +00:00
|
|
|
|
2020-01-10 21:58:17 +00:00
|
|
|
minitor:
|
|
|
|
@echo Version: $(VERSION)
|
|
|
|
go build -ldflags '-X "main.version=${VERSION}"' -o minitor
|
2019-10-03 19:56:03 +00:00
|
|
|
|
|
|
|
.PHONY: run
|
2020-01-10 21:58:17 +00:00
|
|
|
run: minitor build
|
|
|
|
./minitor -debug
|
2019-11-16 01:36:10 +00:00
|
|
|
|
|
|
|
.PHONY: run-metrics
|
2020-01-10 21:58:17 +00:00
|
|
|
run-metrics: minitor build
|
|
|
|
./minitor -debug -metrics
|
2019-10-03 19:56:03 +00:00
|
|
|
|
|
|
|
.PHONY: test
|
|
|
|
test:
|
|
|
|
go test -coverprofile=coverage.out
|
2019-10-07 21:58:21 +00:00
|
|
|
@echo
|
2019-10-03 19:56:03 +00:00
|
|
|
go tool cover -func=coverage.out
|
2019-10-07 21:58:21 +00:00
|
|
|
@echo
|
|
|
|
@# Check min coverage percentage
|
|
|
|
@go tool cover -func=coverage.out | awk -v target=80.0% \
|
|
|
|
'/^total:/ { print "Total coverage: " $$3 " Minimum coverage: " target; if ($$3+0.0 >= target+0.0) print "ok"; else { print "fail"; exit 1; } }'
|
|
|
|
|
2019-11-21 23:30:19 +00:00
|
|
|
# Installs pre-commit hooks
|
|
|
|
.PHONY: install-hooks
|
|
|
|
install-hooks:
|
|
|
|
pre-commit install --install-hooks
|
|
|
|
|
|
|
|
# Checks files for encryption
|
|
|
|
.PHONY: check
|
|
|
|
check:
|
|
|
|
pre-commit run --all-files
|
|
|
|
|
2019-10-03 19:56:03 +00:00
|
|
|
.PHONY: clean
|
|
|
|
clean:
|
2020-01-10 21:58:17 +00:00
|
|
|
rm -f ./minitor
|
|
|
|
rm -f ./minitor-linux-*
|
|
|
|
rm -f ./minitor-darwin-amd64
|
2019-10-03 19:56:03 +00:00
|
|
|
rm -f ./coverage.out
|
2019-10-11 00:20:42 +00:00
|
|
|
|
|
|
|
.PHONY: docker-build
|
|
|
|
docker-build:
|
2020-01-10 21:58:17 +00:00
|
|
|
docker build -f ./Dockerfile.multi-stage -t $(DOCKER_TAG)-linux-amd64 .
|
2019-10-11 00:20:42 +00:00
|
|
|
|
|
|
|
.PHONY: docker-run
|
|
|
|
docker-run: docker-build
|
|
|
|
docker run --rm -v $(shell pwd)/config.yml:/root/config.yml $(DOCKER_TAG)
|
2020-01-10 21:58:17 +00:00
|
|
|
|
|
|
|
## Multi-arch targets
|
|
|
|
|
|
|
|
# Arch specific go build targets
|
|
|
|
minitor-darwin-amd64:
|
|
|
|
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 \
|
|
|
|
go build -ldflags '-X "main.version=${VERSION}"' -a -installsuffix nocgo \
|
|
|
|
-o minitor-darwin-amd64
|
|
|
|
|
|
|
|
minitor-linux-amd64:
|
|
|
|
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \
|
|
|
|
go build -ldflags '-X "main.version=${VERSION}"' -a -installsuffix nocgo \
|
|
|
|
-o minitor-linux-amd64
|
|
|
|
|
|
|
|
minitor-linux-arm:
|
|
|
|
GOOS=linux GOARCH=arm CGO_ENABLED=0 \
|
|
|
|
go build -ldflags '-X "main.version=${VERSION}"' -a -installsuffix nocgo \
|
|
|
|
-o minitor-linux-arm
|
|
|
|
|
|
|
|
minitor-linux-arm64:
|
|
|
|
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 \
|
|
|
|
go build -ldflags '-X "main.version=${VERSION}"' -a -installsuffix nocgo \
|
|
|
|
-o minitor-linux-arm64
|
|
|
|
|
|
|
|
# Arch specific docker build targets
|
|
|
|
.PHONY: docker-build-arm
|
|
|
|
docker-build-arm: minitor-linux-arm
|
|
|
|
docker build --build-arg REPO=arm32v7 --build-arg ARCH=arm . -t ${DOCKER_TAG}-linux-arm
|
|
|
|
|
|
|
|
.PHONY: docker-build-arm
|
|
|
|
docker-build-arm64: minitor-linux-arm64
|
|
|
|
docker build --build-arg REPO=arm64v8 --build-arg ARCH=arm64 . -t ${DOCKER_TAG}-linux-arm64
|
|
|
|
|
|
|
|
# Cross run on host architechture
|
|
|
|
.PHONY: docker-run-arm
|
|
|
|
docker-run-arm: docker-build-arm
|
|
|
|
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --name $(DOCKER_TAG)-run ${DOCKER_TAG}-linux-arm
|
|
|
|
|
|
|
|
.PHONY: docker-run-arm64
|
|
|
|
docker-run-arm64: docker-build-arm64
|
|
|
|
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --name $(DOCKER_TAG)-run ${DOCKER_TAG}-linux-arm64
|