sudo: required # Trusty distribution is much faster when sudo is required dist: trusty services: - docker language: go go: - 1.6 go_import_path: github.com/miekg/coredns # 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 # is needed to have access to sudo in the test environment. Sudo is # needed to have docker in the test environment. Docker is needed to # launch a kubernetes instance in the test environment. # (Dependencies are fun! :) ) before_install: - cat /proc/net/if_inet6 - uname -a - sudo bash -c 'if [ `cat /proc/net/if_inet6 | wc -l` = "0" ]; then echo "Enabling IPv6" ; sysctl net.ipv6.conf.all.disable_ipv6=0 ; sysctl net.ipv6.conf.default.disable_ipv6=0 ; sysctl net.ipv6.conf.lo.disable_ipv6=0 ; fi' - cat /proc/net/if_inet6 - env before_script: # Download etcd, unpack and launch - curl -L https://github.com/coreos/etcd/releases/download/v2.3.1/etcd-v2.3.1-linux-amd64.tar.gz -o etcd-v2.3.1-linux-amd64.tar.gz - tar xzvf etcd-v2.3.1-linux-amd64.tar.gz - ./etcd-v2.3.1-linux-amd64/etcd & # If docker is available, pull the kubernetes hyperkube image down and launch kubernetes. - if which docker &>/dev/null ; then docker pull gcr.io/google_containers/hyperkube-amd64:v1.2.4 ; docker ps -a ; fi - if which docker &>/dev/null ; then ./contrib/kubernetes/testscripts/start_k8s_with_services.sh ; docker ps -a ; fi # Get golang dependencies, and build coredns binary - go get -v -d ./... - go get github.com/coreos/go-etcd/etcd #- go build -v -ldflags="-s -w" script: - go test -tags etcd -race -bench=. ./... # Run kubernetes integration tests only if kubectl is available. i.e. If kubernetes was launched - ./contrib/kubernetes/testscripts/kubectl version && go test -v -tags k8s -race -bench=. -run 'TestK8sIntegration' ./test # go cannot use test profile flag with multiple packages so we have to iterate, the following might be consolidated with the above steps. - ./.coverage.sh after_success: - bash <(curl -s https://codecov.io/bash)