sudo: required
# Trusty distribution is much faster when sudo is required
dist: trusty

services:
  - docker

language: go
go:
  - 1.9

go_import_path: github.com/coredns/coredns

git:
  depth: 3

env:
  - TEST_TYPE=coverage ETCD_VERSION=2.3.1
  - TEST_TYPE=integration ETCD_VERSION=2.3.1
  - TEST_TYPE=core ETCD_VERSION=2.3.1
  - TEST_TYPE=plugin ETCD_VERSION=2.3.1

# 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.

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:
  - docker run -d --net=host --name=etcd quay.io/coreos/etcd:v$ETCD_VERSION

script:
  - make TEST_TYPE=$TEST_TYPE travis


after_success:
  - bash <(curl -s https://codecov.io/bash)
