kubelatte-ce
Форк от sbertech/kubelatte-ce
/
Makefile
82 строки · 2.3 Кб
1GIT_HASH?=$(shell git rev-parse --short HEAD)
2GIT_TAG?=$(shell git tag | tail -1)
3GIT_BRANCH?=$(shell git rev-parse --abbrev-ref HEAD)
4GIT_BRANCH_CLR?=$(shell echo "$(GIT_BRANCH)" | sed -r 's/\//-/g')
5OS=$(shell go env GOOS)
6CONTROLLER_GEN=$(shell pwd)/tools/controller-gen-$(OS)
7REPORT_TOOL=$(shell pwd)/tools/go-test-report-$(OS)
8BASE_IMG=golang:1.22.4-bullseye
9BUILD_IMG=golang:1.22.4-bullseye
10VERSION=1.0.2
11DOCKER_TAG_PREFIX=kubelatte/
12GOMOD?=mod
13define upcounter
14count=$(shell cat .count.inc) ;\
15count=$$(( count + 1 )) ;\
16echo $$count ;\
17echo $$count > .count.inc ;
18endef
19
20.PHONY: upcounter
21upcounter:
22$(call upcounter)
23
24all: build
25
26local: pr-build test
27
28info:
29echo "$(GOMOD)"
30
31fmt:
32git config --global --add safe.directory /go/src && go fmt -mod=$(GOMOD) ./...
33
34pr-build: fmt
35git config --global --add safe.directory /go/src && CGO_ENABLED=0 go build -mod=$(GOMOD) -o bin/ ./cmd/...
36
37test:
38go test -mod=$(GOMOD) -failfast -v ./... -coverprofile cov.out
39
40install:
41go install ./cmd/...
42
43linux:
44CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go install -mod=vendor -ldflags "-s" -installsuffix cgo -v ./cmd/...
45
46docker: upcounter docker-kubelatte
47
48docker-kubelatte:
49mkdir -p gocache-for-docker
50docker build \
51--build-arg base_img=$(BASE_IMG) \
52--build-arg build_img=$(BUILD_IMG) \
53-f docker/kubelatte/Dockerfile -t $(DOCKER_TAG_PREFIX)kubelatte:$(GIT_BRANCH_CLR)-0.$(shell cat .count.inc) .
54
55docker-publish:
56docker push $(DOCKER_TAG_PREFIX)kubelatte:$(GIT_BRANCH_CLR)-0.$(shell cat .count.inc)
57
58docker-release:
59docker tag $(DOCKER_TAG_PREFIX)kubelatte:$(GIT_BRANCH_CLR)-0.$(shell cat .count.inc) $(DOCKER_TAG_PREFIX)kubelatte:$(VERSION)
60docker tag $(DOCKER_TAG_PREFIX)kubelatte:$(GIT_BRANCH_CLR)-0.$(shell cat .count.inc) $(DOCKER_TAG_PREFIX)kubelatte:latest
61docker push $(DOCKER_TAG_PREFIX)kubelatte:$(VERSION)
62docker push $(DOCKER_TAG_PREFIX)kubelatte:latest
63
64.PHONY: build
65build: ## Build manager binary in docker
66docker run --rm -v $(shell pwd):/go/src/ -w /go/src/ $(BUILD_IMG) make GOMOD=$(GOMOD) pr-build test
67
68.PHONY: proto
69proto:
70cd pkg/services/configsloader && \
71protoc --go_out=. --go_opt=paths=source_relative \
72--go-grpc_out=. --go-grpc_opt=paths=source_relative \
73configs_loader.proto
74
75update:
76go mod vendor
77
78dev:
79make GOMOD=vendor docker
80
81dev-build:
82make GOMOD=vendor build