mirror of
https://github.com/coredns/coredns.git
synced 2025-12-09 11:55:13 -05:00
* Make CoreDNS a server type plugin for Caddy Remove code we don't need and port all middleware over. Fix all tests and rework the documentation. Also make `go generate` build a caddy binary which we then copy into our directory. This means `go build`-builds remain working as-is. And new etc instances in each etcd test for better isolation. Fix more tests and rework test.Server with the newer support Caddy offers. Fix Makefile to support new mode of operation.
49 lines
2.4 KiB
YAML
49 lines
2.4 KiB
YAML
sudo: required
|
|
# Trusty distribution is much faster when sudo is required
|
|
dist: trusty
|
|
|
|
services:
|
|
- docker
|
|
|
|
language: go
|
|
go:
|
|
- 1.6
|
|
|
|
# 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:
|
|
# Fix repo pathname for golang imports.
|
|
# When building in a forked repo the import path will be incorrect.
|
|
# Fix is to detect this case and create a symbolic link for the real import name.
|
|
# Note: This assumes that both the upstream "real" repo and the fork are hosted
|
|
# at the same domain. (eg. github.com)
|
|
- ( export UPSTREAM="miekg/coredns" && export REPONAME=`pwd | rev | cut -d "/" -f 1-2 | rev` && test "$REPO" != "$UPSTREAM" && mkdir -p ../../`echo $UPSTREAM | cut -d "/" -f 1` && ln -s ../$REPONAME ../../$UPSTREAM )
|
|
# 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 -tags k8s -race -bench=. -run 'TestK8sIntegration' ./test
|