-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
73 lines (60 loc) · 3.68 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# This repo's root import path (under GOPATH).
ROOT := github.com/lcouds/modelzoo
# Container registry for base images.
BASE_REGISTRY ?= harbor.xz.com:8443
BASE_REGISTRY_USER ?= modelzooai
# Current version of the project.
VERSION ?= $(shell git describe --dirty --always --tags | sed 's/-/./g')
BUILD_DATE=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
GIT_COMMIT=$(shell git rev-parse HEAD)
GIT_TAG=$(shell if [ -z "`git status --porcelain`" ]; then git describe --exact-match --tags HEAD 2>/dev/null; fi)
GIT_TREE_STATE=$(shell if [ -z "`git status --porcelain`" ]; then echo "clean" ; ifelse echo "dirty"; fi)
GITSHA ?= $(shell git rev-parse --short HEAD)
PLATFORM ?= linux.amd64 linux.arm64
DOT := .
SLASH := /
COMMA:= ,
EMPTY:=
SPACE:= $(EMPTY) $(EMPTY)
AGENT_GO_LDFLAGS += -s -w \
-X $(ROOT)/agent/pkg/version.version=$(VERSION) \
-X $(ROOT)/agent/pkg/version.gitCommit=$(GIT_COMMIT) \
-X $(ROOT)/agent/pkg/version.gitTreeState=$(GIT_TREE_STATE) \
-X $(ROOT)/agent/pkg/version.buildDate=$(BUILD_DATE)
AUTOSCALER_GO_LDFLAGS += -s -w \
-X $(ROOT)/autoscaler/pkg/version.version=$(VERSION) \
-X $(ROOT)/autoscaler/pkg/version.gitCommit=$(GIT_COMMIT) \
-X $(ROOT)/autoscaler/pkg/version.gitTreeState=$(GIT_TREE_STATE) \
-X $(ROOT)/autoscaler/pkg/version.buildDate=$(BUILD_DATE)
INGRESS_OPERATOR_GO_LDFLAGS += -s -w \
-X $(ROOT)/ingress-operator/pkg/version.version=$(VERSION) \
-X $(ROOT)/ingress-operator/pkg/version.gitCommit=$(GIT_COMMIT) \
-X $(ROOT)/ingress-operator/pkg/version.gitTreeState=$(GIT_TREE_STATE) \
-X $(ROOT)/ingress-operator/pkg/version.buildDate=$(BUILD_DATE)
MODELZOOETES_GO_LDFLAGS += -s -w \
-X $(ROOT)/modelzooetes/pkg/version.version=$(VERSION) \
-X $(ROOT)/modelzooetes/pkg/version.gitCommit=$(GIT_COMMIT) \
-X $(ROOT)/modelzooetes/pkg/version.gitTreeState=$(GIT_TREE_STATE) \
-X $(ROOT)/modelzooetes/pkg/version.buildDate=$(BUILD_DATE)
.PHONY: agent.image.push
agent.image.push: ## Build and push docker image
$(eval PLATFORM_DOCKER=$(subst $(DOT),$(SLASH),$(PLATFORM)))
$(eval PLATFORM_DOCKER=$(subst $(SPACE),$(COMMA),$(PLATFORM_DOCKER)))
docker buildx build --push --platform $(PLATFORM_DOCKER) --build-arg GO_LDFLAGS="$(AGENT_GO_LDFLAGS)" -f agent/build/Dockerfile --tag ${BASE_REGISTRY}/${BASE_REGISTRY_USER}/modelzoo-agent:$(VERSION) .
.PHONY: autoscaler.image.push
autoscaler.image.push: ## Build and push docker image
$(eval PLATFORM_DOCKER=$(subst $(DOT),$(SLASH),$(PLATFORM)))
$(eval PLATFORM_DOCKER=$(subst $(SPACE),$(COMMA),$(PLATFORM_DOCKER)))
docker buildx build --push --platform $(PLATFORM_DOCKER) --build-arg GO_LDFLAGS="$(AUTOSCALER_GO_LDFLAGS)" -f autoscaler/build/Dockerfile --tag ${BASE_REGISTRY}/${BASE_REGISTRY_USER}/modelzoo-autoscaler:$(VERSION) .
.PHONY: ingress-operator.image.push
ingress-operator.image.push: ## Build and push docker image
$(eval PLATFORM_DOCKER=$(subst $(DOT),$(SLASH),$(PLATFORM)))
$(eval PLATFORM_DOCKER=$(subst $(SPACE),$(COMMA),$(PLATFORM_DOCKER)))
docker buildx build --push --platform $(PLATFORM_DOCKER) --build-arg GO_LDFLAGS="$(INGRESS_OPERATOR_GO_LDFLAGS)" -f ingress-operator/build/Dockerfile --tag ${BASE_REGISTRY}/${BASE_REGISTRY_USER}/ingress-operator:$(VERSION) .
.PHONY: modelzooetes.image.push
modelzooetes.image.push: ## Build and push docker image
$(eval PLATFORM_DOCKER=$(subst $(DOT),$(SLASH),$(PLATFORM)))
$(eval PLATFORM_DOCKER=$(subst $(SPACE),$(COMMA),$(PLATFORM_DOCKER)))
docker buildx build --push --platform $(PLATFORM_DOCKER) --build-arg GO_LDFLAGS="$(MODELZOOETES_GO_LDFLAGS)" -f modelzooetes/build/Dockerfile --tag ${BASE_REGISTRY}/${BASE_REGISTRY_USER}/modelzooetes:$(VERSION) .
.PHONY: all.image.push
all.image.push: agent.image.push autoscaler.image.push ingress-operator.image.push modelzooetes.image.push