aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-08-19 17:02:16 +0100
committerGravatar GitHub <noreply@github.com> 2017-08-19 17:02:16 +0100
commit219a89977258d438932edfa34b3db6fd36154172 (patch)
treed397e60c78781ac083d2aa5dcd6cb18f7c079725
parent02955d7594c84c5cd320ff0190ecd26425db5217 (diff)
downloadcoredns-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.yml21
-rw-r--r--Makefile21
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)
diff --git a/Makefile b/Makefile
index 5e5ec4ffa..68beb7011 100644
--- a/Makefile
+++ b/Makefile
@@ -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)"