@@ -4,17 +4,72 @@ $(LOCAL_BIN):
4
4
$(LOCAL_TMP ) :
5
5
@if [ ! -f " $( LOCAL_TMP) " ]; then mkdir -p $(LOCAL_TMP ) ; fi
6
6
7
+ CURL =$(shell which curl)
8
+
9
+ # If curl is not installed then we have some basic stuff to install it.
10
+ ifeq ("$(strip $(CURL ) ) ","")
11
+ # If we are on linux.
12
+ ifeq ($(OS ) ,linux)
13
+ # If the flavor of linux we are on is debian.
14
+ ifeq ("$(shell cat /etc/os-release | grep 'ID_LIKE=') ","ID_LIKE=debian")
15
+ # Install CURL for debian.define
16
+ CURL =/usr/bin/curl
17
+ $(CURL ) :
18
+ @if [ ! -f " $( CURL) " ]; then $(MAKE ) install-$(CURL ) ; fi
19
+
20
+ install-$(CURL ) :
21
+ $(call warningMsg,curl needs to be installed in order to continue)
22
+ apt-get update -y
23
+ apt-get install -y curl
24
+ else
25
+ # If we are not on debian then we need a different script. I'm not sure what it would need to be.
26
+ $(error I dont know how to install curl on your OS)
27
+ endif
28
+ else
29
+ # If we are not on linux then I have no idea what I'd need to do to get curl.
30
+ $(error Cannot install curl on something other than linux)
31
+ endif
32
+ endif
33
+
34
+ GO_BINARY =$(shell which go)
35
+
36
+ # Check to see if the user has golang installed. If they don't then install it locally just for this project.
37
+ ifeq ("$(strip $(GO_BINARY ) ) ","")
38
+ GOROOT =$(LOCAL_BIN ) /go
39
+ GOVERSION =go1.17.1
40
+ GO_BINARY =$(GOROOT ) /bin/go
41
+
42
+ GO =$(GO_BINARY )
43
+ $(GO ) :
44
+ $(call infoMsg,Go needs to be installed)
45
+ @if [ ! -f " $( GO) " ]; then $(MAKE ) install-$(GO ) ; fi
46
+
47
+ install-$(GO ) : GO_URL = "https://golang.org/dl/$(GOVERSION ) .$(OS ) -$(ARCH ) .tar.gz"
48
+ install-$(GO ) : GO_TAR=$(LOCAL_TMP ) /$(GOVERSION ) .$(OS ) -$(ARCH ) .tar.gz
49
+ install-$(GO ) : $(LOCAL_BIN ) $(LOCAL_TMP ) $(CURL )
50
+ $(call infoMsg,Installing $(GOVERSION ) to $(GOROOT ) )
51
+ -rm -rf $(GO_TAR )
52
+ curl -L $(GO_URL ) --output $(GO_TAR )
53
+ tar -xzf $(GO_TAR ) -C $(LOCAL_BIN )
54
+ rm -rf $(GO_TAR )
55
+
56
+ GO111MODULE =on
57
+ GOROOT =$(LOCAL_BIN ) /go
58
+ endif
59
+
60
+ GO =$(GO_BINARY )
61
+
7
62
LICENSE =$(LOCAL_BIN ) /golicense
8
63
$(LICENSE ) :
9
64
@if [ ! -f " $( LICENSE) " ]; then $(MAKE ) install-$(LICENSE ) ; fi
10
65
11
66
install-$(LICENSE ) : LICENSE_REPO = "https://github.com/mitchellh/golicense.git"
12
67
install-$(LICENSE ) : LICENSE_TMP=$(LOCAL_TMP ) /golicense
13
- install-$(LICENSE ) : $(LOCAL_BIN ) $(LOCAL_TMP )
68
+ install-$(LICENSE ) : $(LOCAL_BIN ) $(LOCAL_TMP ) $( GO )
14
69
$(call infoMsg,Installing golicense to $(LICENSE ) )
15
70
rm -rf $(LICENSE_TMP ) || true
16
71
git clone $(LICENSE_REPO ) $(LICENSE_TMP )
17
- cd $(LICENSE_TMP ) && go build -o $(LICENSE ) .
72
+ cd $(LICENSE_TMP ) && $( GO ) build -o $(LICENSE ) .
18
73
rm -rf $(LICENSE_TMP ) || true
19
74
20
75
HELM_VERSION =3.5.4
@@ -26,7 +81,7 @@ install-$(HELM): HELM_DIR=$(LOCAL_TMP)/helm
26
81
install-$(HELM ) : HELM_TAR=$(HELM_DIR ) /helm.tar.gz
27
82
install-$(HELM ) : HELM_BIN_NAME=$(OS ) -$(ARCH )
28
83
install-$(HELM ) : HELM_URL = "https://get.helm.sh/helm-v$(HELM_VERSION ) -$(HELM_BIN_NAME ) .tar.gz"
29
- install-$(HELM ) : $(LOCAL_BIN ) $(LOCAL_TMP )
84
+ install-$(HELM ) : $(LOCAL_BIN ) $(LOCAL_TMP ) $( CURL )
30
85
$(call infoMsg,Installing helm v$(HELM_VERSION ) at $(HELM ) )
31
86
-rm -rf $(HELM_DIR )
32
87
mkdir -p $(HELM_DIR )
@@ -42,38 +97,38 @@ $(SPLIT_YAML):
42
97
43
98
install-$(SPLIT_YAML ) : SPLIT_YAML_REPO = "https://github.com/mogensen/kubernetes-split-yaml.git"
44
99
install-$(SPLIT_YAML ) : SPLIT_YAML_DIR=$(LOCAL_TMP ) /kubernetes-split-yaml
45
- install-$(SPLIT_YAML ) : $(LOCAL_TMP ) $(LOCAL_BIN )
100
+ install-$(SPLIT_YAML ) : $(LOCAL_TMP ) $(LOCAL_BIN ) $( GO )
46
101
$(call infoMsg,Installing kubernetes-split-yaml from $(SPLIT_YAML_REPO ) at $(SPLIT_YAML ) )
47
- -rm -rfd $(SPLIT_YAML_DIR )
102
+ -rm -rf $(SPLIT_YAML_DIR )
48
103
git clone $(SPLIT_YAML_REPO ) $(SPLIT_YAML_DIR )
49
- cd $(SPLIT_YAML_DIR ) && go build -o $(SPLIT_YAML ) ./...
50
- rm -rfd $(SPLIT_YAML_DIR )
104
+ cd $(SPLIT_YAML_DIR ) && $( GO ) build -o $(SPLIT_YAML ) ./...
105
+ rm -rf $(SPLIT_YAML_DIR )
51
106
52
107
SWAG =$(LOCAL_BIN ) /swag
53
108
$(SWAG ) :
54
109
@if [ ! -f " $( SWAG) " ]; then $(MAKE ) install-$(SWAG ) ; fi
55
110
56
111
install-$(SWAG ) : SWAG_REPO = "https://github.com/swaggo/swag.git"
57
112
install-$(SWAG ) : SWAG_DIR=$(LOCAL_TMP ) /swag
58
- install-$(SWAG ) : $(LOCAL_BIN ) $(LOCAL_TMP )
113
+ install-$(SWAG ) : $(LOCAL_BIN ) $(LOCAL_TMP ) $( GO )
59
114
$(call infoMsg,Installing swag from $(SWAG_REPO ) at $(SWAG_DIR ) )
60
- -rm -rfd $(SWAG_DIR )
115
+ -rm -rf $(SWAG_DIR )
61
116
git clone $(SWAG_REPO ) $(SWAG_DIR )
62
- cd $(SWAG_DIR ) && go build -o $(SWAG ) github.com/swaggo/swag/cmd/swag
117
+ cd $(SWAG_DIR ) && $( GO ) build -o $(SWAG ) github.com/swaggo/swag/cmd/swag
63
118
chmod +x $(SWAG )
64
- rm -rfd $(SWAG_DIR )
119
+ rm -rf $(SWAG_DIR )
65
120
66
121
HOSTESS =$(LOCAL_BIN ) /hostess
67
122
$(HOSTESS ) :
68
123
@if [ ! -f " $( HOSTESS) " ]; then $(MAKE ) install-$(HOSTESS ) ; fi
69
124
70
125
install-$(HOSTESS ) : HOSTESS_REPO = "https://github.com/cbednarski/hostess.git"
71
126
install-$(HOSTESS ) : HOSTESS_DIR=$(LOCAL_TMP ) /hostess
72
- install-$(HOSTESS ) : $(LOCAL_BIN ) $(LOCAL_TMP )
127
+ install-$(HOSTESS ) : $(LOCAL_BIN ) $(LOCAL_TMP ) $( GO )
73
128
$(call infoMsg,Installing hostess to $(HOSTESS ) )
74
129
-rm -rf $(HOSTESS_DIR )
75
130
git clone $(HOSTESS_REPO ) $(HOSTESS_DIR )
76
- cd $(HOSTESS_DIR ) && go build -o $(HOSTESS ) .
131
+ cd $(HOSTESS_DIR ) && $( GO ) build -o $(HOSTESS ) .
77
132
rm -rf $(HOSTESS_DIR )
78
133
79
134
MKCERT =$(LOCAL_BIN ) /mkcert
@@ -82,9 +137,50 @@ $(MKCERT):
82
137
83
138
install-$(MKCERT ) : MKCERT_REPO = "https://github.com/FiloSottile/mkcert.git"
84
139
install-$(MKCERT ) : MKCERT_DIR=$(LOCAL_TMP ) /mkcert
85
- install-$(MKCERT ) : $(LOCAL_BIN ) $(LOCAL_TMP )
140
+ install-$(MKCERT ) : $(LOCAL_BIN ) $(LOCAL_TMP ) $( GO )
86
141
$(call infoMsg,Installing mkcert to $(MKCERT ) )
87
142
-rm -rf $(MKCERT_DIR )
88
143
git clone $(MKCERT_REPO ) $(MKCERT_DIR )
89
- cd $(MKCERT_DIR ) && go build -o $(MKCERT ) .
144
+ cd $(MKCERT_DIR ) && $( GO ) build -o $(MKCERT ) .
90
145
rm -rf $(MKCERT_DIR )
146
+
147
+ GCLOUD =$(LOCAL_BIN ) /google-cloud-sdk/bin/gcloud
148
+ $(GCLOUD ) :
149
+ @if [ ! -f " $( GCLOUD) " ]; then $(MAKE ) install-$(GCLOUD ) ; fi
150
+
151
+ install-$(GCLOUD ) : GCLOUD_VERSION=358.0.0
152
+ install-$(GCLOUD ) : GCLOUD_ARCH=$(shell uname -m)
153
+ install-$(GCLOUD ) : GCLOUD_URL = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-$(GCLOUD_VERSION ) -$(OS ) -$(GCLOUD_ARCH ) .tar.gz"
154
+ install-$(GCLOUD ) : GCLOUD_TAR=$(LOCAL_TMP ) /gcloud.tar.gz
155
+ install-$(GCLOUD ) : $(LOCAL_BIN ) $(LOCAL_TMP ) $(CURL )
156
+ $(call infoMsg,Installing gcloud SDK v$(GCLOUD_VERSION ) to $(GCLOUD ) )
157
+ -rm -rf $(GCLOUD_TAR )
158
+ curl -SsL $(GCLOUD_URL ) --output $(GCLOUD_TAR )
159
+ tar -xzf $(GCLOUD_TAR ) -C $(LOCAL_BIN )
160
+ rm -rf $(GCLOUD_TAR )
161
+
162
+ ifneq ($(ENV_LOWER ) ,local)
163
+ KUBECTL =$(LOCAL_BIN ) /kubectl
164
+ $(KUBECTL ) :
165
+ @if [ ! -f " $( KUBECTL) " ]; then $(MAKE ) install-$(KUBECTL ) ; fi
166
+
167
+ install-$(KUBECTL ) : $(CURL )
168
+ install-$(KUBECTL ) : KUBECTL_STABLE=$(shell curl -L -s https://dl.k8s.io/release/stable.txt)
169
+ install-$(KUBECTL ) : KUBECTL_URL = "https://dl.k8s.io/release/$(KUBECTL_STABLE ) /bin/$(OS ) /$(ARCH ) /kubectl"
170
+ install-$(KUBECTL ) : $(LOCAL_BIN )
171
+ $(call infoMsg,Installing kubectl to $(KUBECTL ) )
172
+ curl -L $(KUBECTL_URL ) --output $(KUBECTL )
173
+ chmod +x $(KUBECTL )
174
+ endif
175
+
176
+
177
+ buildkite : $(KUBECTL )
178
+ $(KUBECTL ) get po
179
+
180
+ gcloud : $(GCLOUD )
181
+ $(GCLOUD ) info
182
+
183
+ PROJECT_ID =acceptance-320515
184
+ cloud-build : $(GCLOUD )
185
+ cloud-build : NAME=$(shell basename `git rev-parse --show-toplevel`)
186
+ cloud-build :; $(GCLOUD ) builds submit --project=$(PROJECT_ID ) --tag=gcr.io/$(PROJECT_ID ) /github.com/monetr/$(NAME ) :$(RELEASE_REVISION )
0 commit comments