|
1 | 1 |
|
2 | | -.NOTPARALLEL: |
3 | | - |
4 | 2 | ROOT=../../.. |
5 | | - |
6 | | -ifeq ($(VERSION),) |
7 | | -VERSION:=$(patsubst v%,%,$(shell git describe --tags `git rev-list --tags --max-count=1`)) |
8 | | -endif |
9 | | -ifeq ($(VERSION),) |
10 | | -$(error Cannot determine version. Aborting.) |
11 | | -endif |
| 3 | +include $(ROOT)/deps/readies/mk/main |
12 | 4 |
|
13 | 5 | # OSNICK=buster|stretch|bionic |
14 | 6 | OSNICK ?= buster |
15 | 7 |
|
16 | 8 | REPO=redisfab |
17 | 9 | STEM=$(REPO)/redisedgevision |
18 | | -BUILD_OPT=--rm |
19 | | -# --squash |
20 | | - |
21 | | -#---------------------------------------------------------------------------------------------- |
22 | | - |
23 | | -define targets # (1=OP, 2=op) |
24 | | -$(1)_TARGETS := |
25 | | -$(1)_TARGETS += $(if $(findstring $(X64),1),$(2)_x64) |
26 | | -$(1)_TARGETS += $(if $(findstring $(ARM7),1),$(2)_arm32v7) |
27 | | -$(1)_TARGETS += $(if $(findstring $(ARM8),1),$(2)_arm64v8) |
28 | | - |
29 | | -$(1)_TARGETS += $$(if $$(strip $$($(1)_TARGETS)),,$(2)_x64 $(2)_arm32v7 $(2)_arm64v8) |
30 | | -endef |
31 | | - |
32 | | -$(eval $(call targets,BUILD,build)) |
33 | | -$(eval $(call targets,PUSH,push)) |
34 | | - |
35 | | -#---------------------------------------------------------------------------------------------- |
36 | | - |
37 | | -define build_x64 # (1=arch) |
38 | | -build_$(1): |
39 | | - docker build $(BUILD_OPT) -t $(STEM)-$(OSNICK):$(VERSION)-x64 -f $(ROOT)/vision/Dockerfile $(ROOT) |
40 | | - |
41 | | -.PHONY: build_$(1) |
42 | | -endef |
43 | | - |
44 | | -define build_arm # (1=arch) |
45 | | -build_$(1): |
46 | | - docker build $(BUILD_OPT) -t $(STEM)-$(OSNICK):$(VERSION)-$(1) -f $(ROOT)/vision/Dockerfile.arm \ |
47 | | - --build-arg ARCH=$(1) $(ROOT) |
48 | | - |
49 | | -.PHONY: build_$(1) |
50 | | -endef |
51 | | - |
52 | | -define push # (1=arch) |
53 | | -push_$(1): |
54 | | - docker push $(STEM)-$(OSNICK):$(VERSION)-$(1) |
55 | | - |
56 | | -.PHONY: push_$(1) |
57 | | -endef |
58 | | - |
59 | | -define create_manifest # (1=version) |
60 | | -docker manifest create -a $(STEM)-$(OSNICK):$(1) \ |
61 | | - -a $(STEM)-$(OSNICK):$(VERSION)-x64 \ |
62 | | - -a $(STEM)-$(OSNICK):$(VERSION)-arm64v8 \ |
63 | | - -a $(STEM)-$(OSNICK):$(VERSION)-arm32v7 |
64 | | -docker manifest annotate $(STEM)-$(OSNICK):$(1) $(STEM)-$(OSNICK):$(VERSION)-arm32v7 --os linux --arch arm --variant v7 |
65 | | -docker manifest annotate $(STEM)-$(OSNICK):$(1) $(STEM)-$(OSNICK):$(VERSION)-arm64v8 --os linux --arch arm64 --variant v8 |
66 | | -docker manifest push -p $(STEM)-$(OSNICK):$(1) |
67 | | -endef |
68 | | - |
69 | | -#---------------------------------------------------------------------------------------------- |
70 | | - |
71 | | -all: build publish |
72 | | - |
73 | | -$(eval $(call build_x64,x64)) |
74 | | -$(eval $(call build_arm,arm64v8)) |
75 | | -$(eval $(call build_arm,arm32v7)) |
76 | | - |
77 | | -$(eval $(call push,x64)) |
78 | | -$(eval $(call push,arm64v8)) |
79 | | -$(eval $(call push,arm32v7)) |
80 | 10 |
|
81 | | -build: $(BUILD_TARGETS) |
| 11 | +DOCKERFILE_STEM=$(ROOT)/vision/Dockerfile |
82 | 12 |
|
83 | | -ifneq ($(PUSH),0) |
84 | | -publish: $(PUSH_TARGETS) |
85 | | -else |
86 | | -publish: |
87 | | -endif |
88 | | - $(call create_manifest,$(VERSION)) |
89 | | - $(call create_manifest,latest) |
| 13 | +include ../versions |
90 | 14 |
|
91 | | -show: |
92 | | - @echo "$(STEM)-$(OSNICK):" |
93 | | -ifeq ($(INSPECT),1) |
94 | | - @docker manifest inspect $(STEM)-$(OSNICK):$(VERSION) | jq |
95 | | -else |
96 | | - @curl -s -X "GET" https://cloud.docker.com/v2/repositories/$(STEM)-$(OSNICK)/tags/ | jq |
97 | | -endif |
| 15 | +DOCKER_BUILD_ARGS += \ |
| 16 | + VERSION=$(VERSION) \ |
| 17 | + REDISAI_VERSION=$(REDISAI_VERSION) \ |
| 18 | + REDISTIMESERIES_VERSION=$(REDISTIMESERIES_VERSION) \ |
| 19 | + REDISGEARS_VERSION=$(REDISGEARS_VERSION) |
98 | 20 |
|
99 | | -.PHONY: build public show |
| 21 | +include $(MK)/docker |
0 commit comments