diff options
author | 2017-08-19 17:02:16 +0100 | |
---|---|---|
committer | 2017-08-19 17:02:16 +0100 | |
commit | 219a89977258d438932edfa34b3db6fd36154172 (patch) | |
tree | d397e60c78781ac083d2aa5dcd6cb18f7c079725 | |
parent | 02955d7594c84c5cd320ff0190ecd26425db5217 (diff) | |
download | coredns-219a89977258d438932edfa34b3db6fd36154172.tar.gz coredns-219a89977258d438932edfa34b3db6fd36154172.tar.zst coredns-219a89977258d438932edfa34b3db6fd36154172.zip |
travis: parallize builds (#947)
* travis: parallize builds
* trying out stuff
* order matters
-rw-r--r-- | .travis.yml | 21 | ||||
-rw-r--r-- | Makefile | 21 |
2 files changed, 32 insertions, 10 deletions
diff --git a/.travis.yml b/.travis.yml index c6724f8aa..306853cb1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,14 +7,25 @@ services: language: go go: - - 1.7 - 1.8 + - 1.7 go_import_path: github.com/coredns/coredns -env: - - ETCD_VERSION=2.3.1 K8S_VERSION=1.5.0 KUBECTL="docker exec hyperkube /hyperkube kubectl" DNS_ARGUMENTS="" +git: + depth: 3 +cache: + directories: + - $GOPATH/src + - $GOPATH/pkg + +env: + - TEST_TYPE=coverage ETCD_VERSION=2.3.1 K8S_VERSION=1.5.0 KUBECTL="docker exec hyperkube /hyperkube kubectl" + - TEST_TYPE=integration ETCD_VERSION=2.3.1 K8S_VERSION=1.5.0 KUBECTL="docker exec hyperkube /hyperkube kubectl" + - TEST_TYPE=core ETCD_VERSION=2.3.1 K8S_VERSION=1.5.0 KUBECTL="docker exec hyperkube /hyperkube kubectl" + - TEST_TYPE=middleware ETCD_VERSION=2.3.1 K8S_VERSION=1.5.0 KUBECTL="docker exec hyperkube /hyperkube kubectl" + # In the Travis VM-based build environment, IPv6 networking is not # enabled by default. The sysctl operations below enable IPv6. # IPv6 is needed by some of the CoreDNS test cases. The VM environment @@ -31,7 +42,7 @@ before_install: before_script: - docker run -d --net=host --name=etcd quay.io/coreos/etcd:v$ETCD_VERSION - - docker run -d --volume=/:/rootfs:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:rw --volume=/var/lib/kubelet/:/var/lib/kubelet:rw --volume=/var/run:/var/run:rw --volume=`pwd`/.travis:/travis --net=host --pid=host --privileged --name=hyperkube gcr.io/google_containers/hyperkube-amd64:v$K8S_VERSION /hyperkube kubelet --containerized --hostname-override=127.0.0.1 --api-servers=http://localhost:8080 --config=/etc/kubernetes/manifests $DNS_ARGUMENTS --allow-privileged --v=2 + - docker run -d --volume=/:/rootfs:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:rw --volume=/var/lib/kubelet/:/var/lib/kubelet:rw --volume=/var/run:/var/run:rw --volume=`pwd`/.travis:/travis --net=host --pid=host --privileged --name=hyperkube gcr.io/google_containers/hyperkube-amd64:v$K8S_VERSION /hyperkube kubelet --containerized --hostname-override=127.0.0.1 --api-servers=http://localhost:8080 --config=/etc/kubernetes/manifests --allow-privileged --v=2 # Wait until kubectl is ready - for i in {1..10}; do $KUBECTL version && break || sleep 5; done - $KUBECTL version @@ -44,7 +55,7 @@ before_script: - docker ps -a script: - - make coverage + - make TEST_TYPE=$TEST_TYPE travis after_success: - bash <(curl -s https://codecov.io/bash) @@ -28,10 +28,20 @@ godeps: go get golang.org/x/net/context go get golang.org/x/text -.PHONY: coverage -coverage: check - set -e -x - echo "" > coverage.txt +.PHONY: travis +travis: check +ifeq ($(TEST_TYPE),core) + ( cd request ; go test -v -tags 'etcd k8s' -race ./... ) + ( cd core ; go test -v -tags 'etcd k8s' -race ./... ) + ( cd coremain go test -v -tags 'etcd k8s' -race ./... ) +endif +ifeq ($(TEST_TYPE),integration) + ( cd test ; go test -v -tags 'etcd k8s' -race ./... ) +endif +ifeq ($(TEST_TYPE),middleware) + ( cd middleware ; go test -v -tags 'etcd k8s' -race ./... ) +endif +ifeq ($(TEST_TYPE),coverage) for d in `go list ./... | grep -v vendor`; do \ go test -v -tags 'etcd k8s' -race -coverprofile=cover.out -covermode=atomic -bench=. $$d || exit 1; \ if [ -f cover.out ]; then \ @@ -39,6 +49,8 @@ coverage: check rm cover.out; \ fi; \ done +endif + core/zmiddleware.go core/dnsserver/zdirectives.go: middleware.cfg go generate coredns.go @@ -55,7 +67,6 @@ fmt: .PHONY: lint lint: - ## run go lint, suggestion only (not enforced) go get -u github.com/golang/lint/golint @test -z "$$(find . -type d | grep -vE '(/vendor|^\.$$|/.git|/.travis)' | grep -vE '(^\./pb)' | xargs golint \ | grep -vE "context\.Context should be the first parameter of a function" | tee /dev/stderr)" |