From a954a0de534b69be2a3feb5ec258a1b0d178994c Mon Sep 17 00:00:00 2001 From: Gyu-Ho Lee Date: Thu, 5 Oct 2017 10:31:24 -0700 Subject: [PATCH] Makefile: initial commit, update Dockerfile Signed-off-by: Gyu-Ho Lee --- Makefile | 84 +++++++++++++++++++++++++++++++++++++++++++ e2e/docker/Dockerfile | 35 +++++++++++------- 2 files changed, 107 insertions(+), 12 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..14e79676f --- /dev/null +++ b/Makefile @@ -0,0 +1,84 @@ +# run makefile from repo root + +.PHONY: build +build: + GO_BUILD_FLAGS="-v" ./build + ./bin/etcd --version + ETCDCTL_API=3 ./bin/etcdctl version + +# run all tests +test-all: + RELEASE_TEST=y INTEGRATION=y PASSES='build unit release integration_e2e functional' ./test 2>&1 | tee test.log + +# clean up failed tests, logs, dependencies +clean: + rm -f ./*.log + rm -f ./bin/Dockerfile-release + rm -rf ./bin/*.etcd + rm -rf ./gopath + rm -rf ./release + rm -f ./integration/127.0.0.1:* ./integration/localhost:* + rm -f ./clientv3/integration/127.0.0.1:* ./clientv3/integration/localhost:* + rm -f ./clientv3/ordering/127.0.0.1:* ./clientv3/ordering/localhost:* + +# keep in-sync with 'Dockerfile-test' +_GO_VERSION = go1.8.4 +ifdef GO_VERSION + _GO_VERSION = $(GO_VERSION) +endif + +# build base container image for testing on Linux +docker-test-build: + docker build --tag gcr.io/etcd-development/etcd-test:$(_GO_VERSION) --file ./Dockerfile-test . + +# e.g. +# gcloud docker -- login -u _json_key -p "$(cat /etc/gcp-key-etcd.json)" https://gcr.io +docker-test-push: + gcloud docker -- push gcr.io/etcd-development/etcd-test:$(_GO_VERSION) + +docker-test-pull: + docker pull gcr.io/etcd-development/etcd-test:$(_GO_VERSION) + +# compile etcd and etcdctl with Linux +docker-test-compile: + docker run \ + --rm \ + --volume=`pwd`/:/etcd \ + gcr.io/etcd-development/etcd-test:$(_GO_VERSION) \ + /bin/bash -c "cd /etcd && GO_BUILD_FLAGS=-v ./build && ./bin/etcd --version" + +# run tests inside container +docker-test: + docker run \ + --rm \ + --volume=`pwd`:/go/src/github.com/coreos/etcd \ + gcr.io/etcd-development/etcd-test:$(_GO_VERSION) \ + /bin/bash -c "RELEASE_TEST=y INTEGRATION=y PASSES='build unit release integration_e2e functional' ./test 2>&1 | tee docker-test.log" + +docker-test-386: + docker run \ + --rm \ + --volume=`pwd`:/go/src/github.com/coreos/etcd \ + gcr.io/etcd-development/etcd-test:$(_GO_VERSION) \ + /bin/bash -c "GOARCH=386 PASSES='build unit integration_e2e' ./test 2>&1 | tee docker-test.log" + +# build release container image with Linux +_ETCD_VERSION ?= $(shell git rev-parse --short HEAD || echo "GitNotFound") +ifdef ETCD_VERSION + _ETCD_VERSION = $(ETCD_VERSION) +endif +docker-release-master-build: docker-test-compile + cp ./Dockerfile-release ./bin/Dockerfile-release + docker build \ + --tag gcr.io/etcd-development/etcd:$(_ETCD_VERSION) \ + --file ./bin/Dockerfile-release \ + ./bin + rm -f ./bin/Dockerfile-release + + docker run \ + --rm \ + gcr.io/etcd-development/etcd:$(_ETCD_VERSION) \ + /bin/sh -c "/usr/local/bin/etcd --version && ETCDCTL_API=3 /usr/local/bin/etcdctl version" + +docker-release-master-push: + gcloud docker -- push gcr.io/etcd-development/etcd:$(_ETCD_VERSION) diff --git a/e2e/docker/Dockerfile b/e2e/docker/Dockerfile index c94e1612a..e2708a7df 100644 --- a/e2e/docker/Dockerfile +++ b/e2e/docker/Dockerfile @@ -1,12 +1,23 @@ -FROM golang:1.8.3-stretch -LABEL Description="Image for etcd DNS testing" -RUN apt update -y -RUN go get github.com/mattn/goreman -RUN apt install -y bind9 -RUN mkdir /var/bind -RUN chown bind /var/bind -ADD Procfile.tls /Procfile.tls -ADD run.sh /run.sh -ADD named.conf etcd.zone rdns.zone /etc/bind/ -ADD resolv.conf /etc/resolv.conf -CMD ["/run.sh"] \ No newline at end of file +FROM golang:1.8.4-stretch + +RUN apt-get -y update +RUN apt-get -y install \ + netcat \ + libaspell-dev \ + libhunspell-dev \ + hunspell-en-us \ + aspell-en \ + shellcheck + +RUN mkdir -p ${GOPATH}/src/github.com/coreos/etcd +WORKDIR ${GOPATH}/src/github.com/coreos/etcd + +ADD ./scripts/install-marker.sh ./scripts/install-marker.sh + +RUN go get -v -u -tags spell github.com/chzchzchz/goword \ + && go get -v -u github.com/coreos/license-bill-of-materials \ + && go get -v -u honnef.co/go/tools/cmd/gosimple \ + && go get -v -u honnef.co/go/tools/cmd/unused \ + && go get -v -u honnef.co/go/tools/cmd/staticcheck \ + && go get -v -u github.com/wadey/gocovmerge \ + && ./scripts/install-marker.sh amd64