-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
85 lines (58 loc) · 2.04 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
74
75
76
77
78
79
80
81
82
83
84
85
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
ROOT_DIR := $(patsubst %/,%,$(dir $(MAKEFILE_PATH)))
NAMESPACE ?= openshift
_OC_CMD := oc -n $(NAMESPACE)
define client_check
@type oc > /dev/null 2>&1 || {
echo 1>&2 "OpenShift Client (oc) not found in \$PATH"; exit 1
}
endef
define delete_config
@$(_OC_CMD) delete imagestream $(1) || :
@$(_OC_CMD) delete buildconfig $(1) || :
endef
define install_or_replace_config
@$(_OC_CMD) create -f $(ROOT_DIR)/.openshift/$(1)/image-stream.yaml \
|| $(_OC_CMD) replace -f $(ROOT_DIR)/.openshift/$(1)/image-stream.yaml
@$(_OC_CMD) create -f $(ROOT_DIR)/.openshift/$(1)/build-config.yaml \
|| $(_OC_CMD) replace -f $(ROOT_DIR)/.openshift/$(1)/build-config.yaml
endef
.PHONY: all clean clean/base clean/s2i install install/base install/s2i \
clean/6.x install/6.x clean/6.x/s2i install/6.x/s2i \
clean/7.x install/7.x clean/7.x/s2i install/7.x/s2i \
clean/8.x install/8.x clean/7.x/s2i install/8.x/s2i test
all: | clean install
oc:
$(call cient_check)
clean/6.x:
$(call delete_config,nodejs-6)
clean/6.x/s2i:
$(call delete_config,nodejs-6-s2i)
install/6.x:
$(call install_or_replace_config,v6.x)
install/6.x/s2i:
$(call install_or_replace_config,v6.x/s2i)
clean/7.x:
$(call delete_config,nodejs-7)
clean/7.x/s2i:
$(call delete_config,nodejs-7-s2i)
install/7.x:
$(call install_or_replace_config,v7.x)
install/7.x/s2i:
$(call install_or_replace_config,v7.x/s2i)
clean/8.x:
$(call delete_config,nodejs-8)
clean/8.x/s2i:
$(call delete_config,nodejs-8-s2i)
install/8.x:
$(call install_or_replace_config,v8.x)
install/8.x/s2i:
$(call install_or_replace_config,v8.x/s2i)
clean/s2i: | clean/6.x/s2i clean/7.x/s2i clean/8.x/s2i
clean/base: | clean/6.x clean/7.x clean/8.x
clean: | oc clean/s2i clean/base
install/s2i: | install/6.x/s2i install/7.x/s2i install/8.x/s2i
install/base: | install/6.x install/7.x install/8.x
install: | oc install/base install/s2i
test:
@echo $(_OC_CMD)