blob: a8eceefe0515376b3b873cbdf4dca0fb4a6e4d53 [file] [log] [blame]
khenaidooffe076b2019-01-15 16:08:08 -05001# run from repository root
2
3
4
5# Example:
6# make build
7# make clean
8# make docker-clean
9# make docker-start
10# make docker-kill
11# make docker-remove
12
13.PHONY: build
14build:
15 GO_BUILD_FLAGS="-v" ./build
16 ./bin/etcd --version
17 ETCDCTL_API=3 ./bin/etcdctl version
18
19clean:
20 rm -f ./codecov
21 rm -rf ./agent-*
22 rm -rf ./covdir
23 rm -f ./*.coverprofile
24 rm -f ./*.log
25 rm -f ./bin/Dockerfile-release
26 rm -rf ./bin/*.etcd
27 rm -rf ./default.etcd
28 rm -rf ./tests/e2e/default.etcd
29 rm -rf ./gopath
30 rm -rf ./gopath.proto
31 rm -rf ./release
32 rm -f ./snapshot/localhost:*
33 rm -f ./integration/127.0.0.1:* ./integration/localhost:*
34 rm -f ./clientv3/integration/127.0.0.1:* ./clientv3/integration/localhost:*
35 rm -f ./clientv3/ordering/127.0.0.1:* ./clientv3/ordering/localhost:*
36
37docker-clean:
38 docker images
39 docker image prune --force
40
41docker-start:
42 service docker restart
43
44docker-kill:
45 docker kill `docker ps -q` || true
46
47docker-remove:
48 docker rm --force `docker ps -a -q` || true
49 docker rmi --force `docker images -q` || true
50
51
52
53GO_VERSION ?= 1.10.3
54ETCD_VERSION ?= $(shell git rev-parse --short HEAD || echo "GitNotFound")
55
56TEST_SUFFIX = $(shell date +%s | base64 | head -c 15)
57TEST_OPTS ?= PASSES='unit'
58
59TMP_DIR_MOUNT_FLAG = --mount type=tmpfs,destination=/tmp
60ifdef HOST_TMP_DIR
61 TMP_DIR_MOUNT_FLAG = --mount type=bind,source=$(HOST_TMP_DIR),destination=/tmp
62endif
63
64
65
66# Example:
67# GO_VERSION=1.8.7 make build-docker-test
68# make build-docker-test
69#
70# gcloud docker -- login -u _json_key -p "$(cat /etc/gcp-key-etcd-development.json)" https://gcr.io
71# GO_VERSION=1.8.7 make push-docker-test
72# make push-docker-test
73#
74# gsutil -m acl ch -u allUsers:R -r gs://artifacts.etcd-development.appspot.com
75# make pull-docker-test
76
77build-docker-test:
78 $(info GO_VERSION: $(GO_VERSION))
79 @sed -i.bak 's|REPLACE_ME_GO_VERSION|$(GO_VERSION)|g' ./tests/Dockerfile
80 docker build \
81 --tag gcr.io/etcd-development/etcd-test:go$(GO_VERSION) \
82 --file ./tests/Dockerfile .
83 @mv ./tests/Dockerfile.bak ./tests/Dockerfile
84
85push-docker-test:
86 $(info GO_VERSION: $(GO_VERSION))
87 gcloud docker -- push gcr.io/etcd-development/etcd-test:go$(GO_VERSION)
88
89pull-docker-test:
90 $(info GO_VERSION: $(GO_VERSION))
91 docker pull gcr.io/etcd-development/etcd-test:go$(GO_VERSION)
92
93
94
95# Example:
96# make build-docker-test
97# make compile-with-docker-test
98# make compile-setup-gopath-with-docker-test
99
100compile-with-docker-test:
101 $(info GO_VERSION: $(GO_VERSION))
102 docker run \
103 --rm \
104 --mount type=bind,source=`pwd`,destination=/go/src/github.com/coreos/etcd \
105 gcr.io/etcd-development/etcd-test:go$(GO_VERSION) \
106 /bin/bash -c "GO_BUILD_FLAGS=-v ./build && ./bin/etcd --version"
107
108compile-setup-gopath-with-docker-test:
109 $(info GO_VERSION: $(GO_VERSION))
110 docker run \
111 --rm \
112 --mount type=bind,source=`pwd`,destination=/etcd \
113 gcr.io/etcd-development/etcd-test:go$(GO_VERSION) \
114 /bin/bash -c "cd /etcd && ETCD_SETUP_GOPATH=1 GO_BUILD_FLAGS=-v ./build && ./bin/etcd --version && rm -rf ./gopath"
115
116
117
118# Example:
119#
120# Local machine:
121# TEST_OPTS="PASSES='fmt'" make test
122# TEST_OPTS="PASSES='fmt bom dep build unit'" make test
123# TEST_OPTS="PASSES='build unit release integration_e2e functional'" make test
124# TEST_OPTS="PASSES='build grpcproxy'" make test
125#
126# Example (test with docker):
127# make pull-docker-test
128# TEST_OPTS="PASSES='fmt'" make docker-test
129# TEST_OPTS="VERBOSE=2 PASSES='unit'" make docker-test
130#
131# Travis CI (test with docker):
132# TEST_OPTS="PASSES='fmt bom dep build unit'" make docker-test
133#
134# Semaphore CI (test with docker):
135# TEST_OPTS="PASSES='build unit release integration_e2e functional'" make docker-test
136# HOST_TMP_DIR=/tmp TEST_OPTS="PASSES='build unit release integration_e2e functional'" make docker-test
137# TEST_OPTS="GOARCH=386 PASSES='build unit integration_e2e'" make docker-test
138#
139# grpc-proxy tests (test with docker):
140# TEST_OPTS="PASSES='build grpcproxy'" make docker-test
141# HOST_TMP_DIR=/tmp TEST_OPTS="PASSES='build grpcproxy'" make docker-test
142
143.PHONY: test
144test:
145 $(info TEST_OPTS: $(TEST_OPTS))
146 $(info log-file: test-$(TEST_SUFFIX).log)
147 $(TEST_OPTS) ./test 2>&1 | tee test-$(TEST_SUFFIX).log
148 ! egrep "(--- FAIL:|panic: test timed out|appears to have leaked)" -B50 -A10 test-$(TEST_SUFFIX).log
149
150docker-test:
151 $(info GO_VERSION: $(GO_VERSION))
152 $(info ETCD_VERSION: $(ETCD_VERSION))
153 $(info TEST_OPTS: $(TEST_OPTS))
154 $(info log-file: test-$(TEST_SUFFIX).log)
155 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
156 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
157 docker run \
158 --rm \
159 $(TMP_DIR_MOUNT_FLAG) \
160 --mount type=bind,source=`pwd`,destination=/go/src/github.com/coreos/etcd \
161 gcr.io/etcd-development/etcd-test:go$(GO_VERSION) \
162 /bin/bash -c "$(TEST_OPTS) ./test 2>&1 | tee test-$(TEST_SUFFIX).log"
163 ! egrep "(--- FAIL:|panic: test timed out|appears to have leaked)" -B50 -A10 test-$(TEST_SUFFIX).log
164
165docker-test-coverage:
166 $(info GO_VERSION: $(GO_VERSION))
167 $(info ETCD_VERSION: $(ETCD_VERSION))
168 $(info log-file: docker-test-coverage-$(TEST_SUFFIX).log)
169 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
170 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
171 docker run \
172 --rm \
173 $(TMP_DIR_MOUNT_FLAG) \
174 --mount type=bind,source=`pwd`,destination=/go/src/github.com/coreos/etcd \
175 gcr.io/etcd-development/etcd-test:go$(GO_VERSION) \
176 /bin/bash -c "COVERDIR=covdir PASSES='build build_cov cov' ./test 2>&1 | tee docker-test-coverage-$(TEST_SUFFIX).log && /codecov -t 6040de41-c073-4d6f-bbf8-d89256ef31e1"
177 ! egrep "(--- FAIL:|panic: test timed out|appears to have leaked)" -B50 -A10 docker-test-coverage-$(TEST_SUFFIX).log
178
179
180
181# Example:
182# make compile-with-docker-test
183# ETCD_VERSION=v3-test make build-docker-release-master
184# ETCD_VERSION=v3-test make push-docker-release-master
185# gsutil -m acl ch -u allUsers:R -r gs://artifacts.etcd-development.appspot.com
186
187build-docker-release-master:
188 $(info ETCD_VERSION: $(ETCD_VERSION))
189 cp ./Dockerfile-release ./bin/Dockerfile-release
190 docker build \
191 --tag gcr.io/etcd-development/etcd:$(ETCD_VERSION) \
192 --file ./bin/Dockerfile-release \
193 ./bin
194 rm -f ./bin/Dockerfile-release
195
196 docker run \
197 --rm \
198 gcr.io/etcd-development/etcd:$(ETCD_VERSION) \
199 /bin/sh -c "/usr/local/bin/etcd --version && ETCDCTL_API=3 /usr/local/bin/etcdctl version"
200
201push-docker-release-master:
202 $(info ETCD_VERSION: $(ETCD_VERSION))
203 gcloud docker -- push gcr.io/etcd-development/etcd:$(ETCD_VERSION)
204
205
206
207# Example:
208# make build-docker-test
209# make compile-with-docker-test
210# make build-docker-static-ip-test
211#
212# gcloud docker -- login -u _json_key -p "$(cat /etc/gcp-key-etcd-development.json)" https://gcr.io
213# make push-docker-static-ip-test
214#
215# gsutil -m acl ch -u allUsers:R -r gs://artifacts.etcd-development.appspot.com
216# make pull-docker-static-ip-test
217#
218# make docker-static-ip-test-certs-run
219# make docker-static-ip-test-certs-metrics-proxy-run
220
221build-docker-static-ip-test:
222 $(info GO_VERSION: $(GO_VERSION))
223 @sed -i.bak 's|REPLACE_ME_GO_VERSION|$(GO_VERSION)|g' ./tests/docker-static-ip/Dockerfile
224 docker build \
225 --tag gcr.io/etcd-development/etcd-static-ip-test:go$(GO_VERSION) \
226 --file ./tests/docker-static-ip/Dockerfile \
227 ./tests/docker-static-ip
228 @mv ./tests/docker-static-ip/Dockerfile.bak ./tests/docker-static-ip/Dockerfile
229
230push-docker-static-ip-test:
231 $(info GO_VERSION: $(GO_VERSION))
232 gcloud docker -- push gcr.io/etcd-development/etcd-static-ip-test:go$(GO_VERSION)
233
234pull-docker-static-ip-test:
235 $(info GO_VERSION: $(GO_VERSION))
236 docker pull gcr.io/etcd-development/etcd-static-ip-test:go$(GO_VERSION)
237
238docker-static-ip-test-certs-run:
239 $(info GO_VERSION: $(GO_VERSION))
240 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
241 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
242 docker run \
243 --rm \
244 --tty \
245 $(TMP_DIR_MOUNT_FLAG) \
246 --mount type=bind,source=`pwd`/bin,destination=/etcd \
247 --mount type=bind,source=`pwd`/tests/docker-static-ip/certs,destination=/certs \
248 gcr.io/etcd-development/etcd-static-ip-test:go$(GO_VERSION) \
249 /bin/bash -c "cd /etcd && /certs/run.sh && rm -rf m*.etcd"
250
251docker-static-ip-test-certs-metrics-proxy-run:
252 $(info GO_VERSION: $(GO_VERSION))
253 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
254 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
255 docker run \
256 --rm \
257 --tty \
258 $(TMP_DIR_MOUNT_FLAG) \
259 --mount type=bind,source=`pwd`/bin,destination=/etcd \
260 --mount type=bind,source=`pwd`/tests/docker-static-ip/certs-metrics-proxy,destination=/certs-metrics-proxy \
261 gcr.io/etcd-development/etcd-static-ip-test:go$(GO_VERSION) \
262 /bin/bash -c "cd /etcd && /certs-metrics-proxy/run.sh && rm -rf m*.etcd"
263
264
265
266# Example:
267# make build-docker-test
268# make compile-with-docker-test
269# make build-docker-dns-test
270#
271# gcloud docker -- login -u _json_key -p "$(cat /etc/gcp-key-etcd-development.json)" https://gcr.io
272# make push-docker-dns-test
273#
274# gsutil -m acl ch -u allUsers:R -r gs://artifacts.etcd-development.appspot.com
275# make pull-docker-dns-test
276#
277# make docker-dns-test-insecure-run
278# make docker-dns-test-certs-run
279# make docker-dns-test-certs-gateway-run
280# make docker-dns-test-certs-wildcard-run
281# make docker-dns-test-certs-common-name-auth-run
282# make docker-dns-test-certs-common-name-multi-run
283
284build-docker-dns-test:
285 $(info GO_VERSION: $(GO_VERSION))
286 @sed -i.bak 's|REPLACE_ME_GO_VERSION|$(GO_VERSION)|g' ./tests/docker-dns/Dockerfile
287 docker build \
288 --tag gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION) \
289 --file ./tests/docker-dns/Dockerfile \
290 ./tests/docker-dns
291 @mv ./tests/docker-dns/Dockerfile.bak ./tests/docker-dns/Dockerfile
292
293 docker run \
294 --rm \
295 --dns 127.0.0.1 \
296 gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION) \
297 /bin/bash -c "/etc/init.d/bind9 start && cat /dev/null >/etc/hosts && dig etcd.local"
298
299push-docker-dns-test:
300 $(info GO_VERSION: $(GO_VERSION))
301 gcloud docker -- push gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION)
302
303pull-docker-dns-test:
304 $(info GO_VERSION: $(GO_VERSION))
305 docker pull gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION)
306
307docker-dns-test-insecure-run:
308 $(info GO_VERSION: $(GO_VERSION))
309 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
310 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
311 docker run \
312 --rm \
313 --tty \
314 --dns 127.0.0.1 \
315 $(TMP_DIR_MOUNT_FLAG) \
316 --mount type=bind,source=`pwd`/bin,destination=/etcd \
317 --mount type=bind,source=`pwd`/tests/docker-dns/insecure,destination=/insecure \
318 gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION) \
319 /bin/bash -c "cd /etcd && /insecure/run.sh && rm -rf m*.etcd"
320
321docker-dns-test-certs-run:
322 $(info GO_VERSION: $(GO_VERSION))
323 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
324 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
325 docker run \
326 --rm \
327 --tty \
328 --dns 127.0.0.1 \
329 $(TMP_DIR_MOUNT_FLAG) \
330 --mount type=bind,source=`pwd`/bin,destination=/etcd \
331 --mount type=bind,source=`pwd`/tests/docker-dns/certs,destination=/certs \
332 gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION) \
333 /bin/bash -c "cd /etcd && /certs/run.sh && rm -rf m*.etcd"
334
335docker-dns-test-certs-gateway-run:
336 $(info GO_VERSION: $(GO_VERSION))
337 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
338 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
339 docker run \
340 --rm \
341 --tty \
342 --dns 127.0.0.1 \
343 $(TMP_DIR_MOUNT_FLAG) \
344 --mount type=bind,source=`pwd`/bin,destination=/etcd \
345 --mount type=bind,source=`pwd`/tests/docker-dns/certs-gateway,destination=/certs-gateway \
346 gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION) \
347 /bin/bash -c "cd /etcd && /certs-gateway/run.sh && rm -rf m*.etcd"
348
349docker-dns-test-certs-wildcard-run:
350 $(info GO_VERSION: $(GO_VERSION))
351 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
352 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
353 docker run \
354 --rm \
355 --tty \
356 --dns 127.0.0.1 \
357 $(TMP_DIR_MOUNT_FLAG) \
358 --mount type=bind,source=`pwd`/bin,destination=/etcd \
359 --mount type=bind,source=`pwd`/tests/docker-dns/certs-wildcard,destination=/certs-wildcard \
360 gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION) \
361 /bin/bash -c "cd /etcd && /certs-wildcard/run.sh && rm -rf m*.etcd"
362
363docker-dns-test-certs-common-name-auth-run:
364 $(info GO_VERSION: $(GO_VERSION))
365 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
366 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
367 docker run \
368 --rm \
369 --tty \
370 --dns 127.0.0.1 \
371 $(TMP_DIR_MOUNT_FLAG) \
372 --mount type=bind,source=`pwd`/bin,destination=/etcd \
373 --mount type=bind,source=`pwd`/tests/docker-dns/certs-common-name-auth,destination=/certs-common-name-auth \
374 gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION) \
375 /bin/bash -c "cd /etcd && /certs-common-name-auth/run.sh && rm -rf m*.etcd"
376
377docker-dns-test-certs-common-name-multi-run:
378 $(info GO_VERSION: $(GO_VERSION))
379 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
380 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
381 docker run \
382 --rm \
383 --tty \
384 --dns 127.0.0.1 \
385 $(TMP_DIR_MOUNT_FLAG) \
386 --mount type=bind,source=`pwd`/bin,destination=/etcd \
387 --mount type=bind,source=`pwd`/tests/docker-dns/certs-common-name-multi,destination=/certs-common-name-multi \
388 gcr.io/etcd-development/etcd-dns-test:go$(GO_VERSION) \
389 /bin/bash -c "cd /etcd && /certs-common-name-multi/run.sh && rm -rf m*.etcd"
390
391
392
393# Example:
394# make build-docker-test
395# make compile-with-docker-test
396# make build-docker-dns-srv-test
397# gcloud docker -- login -u _json_key -p "$(cat /etc/gcp-key-etcd-development.json)" https://gcr.io
398# make push-docker-dns-srv-test
399# gsutil -m acl ch -u allUsers:R -r gs://artifacts.etcd-development.appspot.com
400# make pull-docker-dns-srv-test
401# make docker-dns-srv-test-certs-run
402# make docker-dns-srv-test-certs-gateway-run
403# make docker-dns-srv-test-certs-wildcard-run
404
405build-docker-dns-srv-test:
406 $(info GO_VERSION: $(GO_VERSION))
407 @sed -i.bak 's|REPLACE_ME_GO_VERSION|$(GO_VERSION)|g' ./tests/docker-dns-srv/Dockerfile
408 docker build \
409 --tag gcr.io/etcd-development/etcd-dns-srv-test:go$(GO_VERSION) \
410 --file ./tests/docker-dns-srv/Dockerfile \
411 ./tests/docker-dns-srv
412 @mv ./tests/docker-dns-srv/Dockerfile.bak ./tests/docker-dns-srv/Dockerfile
413
414 docker run \
415 --rm \
416 --dns 127.0.0.1 \
417 gcr.io/etcd-development/etcd-dns-srv-test:go$(GO_VERSION) \
418 /bin/bash -c "/etc/init.d/bind9 start && cat /dev/null >/etc/hosts && dig +noall +answer SRV _etcd-client-ssl._tcp.etcd.local && dig +noall +answer SRV _etcd-server-ssl._tcp.etcd.local && dig +noall +answer m1.etcd.local m2.etcd.local m3.etcd.local"
419
420push-docker-dns-srv-test:
421 $(info GO_VERSION: $(GO_VERSION))
422 gcloud docker -- push gcr.io/etcd-development/etcd-dns-srv-test:go$(GO_VERSION)
423
424pull-docker-dns-srv-test:
425 $(info GO_VERSION: $(GO_VERSION))
426 docker pull gcr.io/etcd-development/etcd-dns-srv-test:go$(GO_VERSION)
427
428docker-dns-srv-test-certs-run:
429 $(info GO_VERSION: $(GO_VERSION))
430 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
431 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
432 docker run \
433 --rm \
434 --tty \
435 --dns 127.0.0.1 \
436 $(TMP_DIR_MOUNT_FLAG) \
437 --mount type=bind,source=`pwd`/bin,destination=/etcd \
438 --mount type=bind,source=`pwd`/tests/docker-dns-srv/certs,destination=/certs \
439 gcr.io/etcd-development/etcd-dns-srv-test:go$(GO_VERSION) \
440 /bin/bash -c "cd /etcd && /certs/run.sh && rm -rf m*.etcd"
441
442docker-dns-srv-test-certs-gateway-run:
443 $(info GO_VERSION: $(GO_VERSION))
444 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
445 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
446 docker run \
447 --rm \
448 --tty \
449 --dns 127.0.0.1 \
450 $(TMP_DIR_MOUNT_FLAG) \
451 --mount type=bind,source=`pwd`/bin,destination=/etcd \
452 --mount type=bind,source=`pwd`/tests/docker-dns-srv/certs-gateway,destination=/certs-gateway \
453 gcr.io/etcd-development/etcd-dns-srv-test:go$(GO_VERSION) \
454 /bin/bash -c "cd /etcd && /certs-gateway/run.sh && rm -rf m*.etcd"
455
456docker-dns-srv-test-certs-wildcard-run:
457 $(info GO_VERSION: $(GO_VERSION))
458 $(info HOST_TMP_DIR: $(HOST_TMP_DIR))
459 $(info TMP_DIR_MOUNT_FLAG: $(TMP_DIR_MOUNT_FLAG))
460 docker run \
461 --rm \
462 --tty \
463 --dns 127.0.0.1 \
464 $(TMP_DIR_MOUNT_FLAG) \
465 --mount type=bind,source=`pwd`/bin,destination=/etcd \
466 --mount type=bind,source=`pwd`/tests/docker-dns-srv/certs-wildcard,destination=/certs-wildcard \
467 gcr.io/etcd-development/etcd-dns-srv-test:go$(GO_VERSION) \
468 /bin/bash -c "cd /etcd && /certs-wildcard/run.sh && rm -rf m*.etcd"
469
470
471
472# Example:
473# make build-functional
474# make build-docker-functional
475# make push-docker-functional
476# make pull-docker-functional
477
478build-functional:
479 $(info GO_VERSION: $(GO_VERSION))
480 $(info ETCD_VERSION: $(ETCD_VERSION))
481 ./functional/build
482 ./bin/etcd-agent -help || true && \
483 ./bin/etcd-proxy -help || true && \
484 ./bin/etcd-runner --help || true && \
485 ./bin/etcd-tester -help || true
486
487build-docker-functional:
488 $(info GO_VERSION: $(GO_VERSION))
489 $(info ETCD_VERSION: $(ETCD_VERSION))
490 @sed -i.bak 's|REPLACE_ME_GO_VERSION|$(GO_VERSION)|g' ./functional/Dockerfile
491 docker build \
492 --tag gcr.io/etcd-development/etcd-functional:go$(GO_VERSION) \
493 --file ./functional/Dockerfile \
494 .
495 @mv ./functional/Dockerfile.bak ./functional/Dockerfile
496
497 docker run \
498 --rm \
499 gcr.io/etcd-development/etcd-functional:go$(GO_VERSION) \
500 /bin/bash -c "./bin/etcd --version && \
501 ./bin/etcd-failpoints --version && \
502 ETCDCTL_API=3 ./bin/etcdctl version && \
503 ./bin/etcd-agent -help || true && \
504 ./bin/etcd-proxy -help || true && \
505 ./bin/etcd-runner --help || true && \
506 ./bin/etcd-tester -help || true && \
507 ./bin/benchmark --help || true"
508
509push-docker-functional:
510 $(info GO_VERSION: $(GO_VERSION))
511 $(info ETCD_VERSION: $(ETCD_VERSION))
512 gcloud docker -- push gcr.io/etcd-development/etcd-functional:go$(GO_VERSION)
513
514pull-docker-functional:
515 $(info GO_VERSION: $(GO_VERSION))
516 $(info ETCD_VERSION: $(ETCD_VERSION))
517 docker pull gcr.io/etcd-development/etcd-functional:go$(GO_VERSION)