dist: trusty
sudo: required
# setup travis so that we can run containers for integration tests
services:
  - docker

language: go

go:
  - 1.8.x

go_import_path: github.com/containerd/containerd

addons:
  apt:
    packages:
      - btrfs-tools
      - libseccomp-dev
      - libapparmor-dev
      - libnl-3-dev
      - libnet-dev
      - protobuf-c-compiler
      - protobuf-compiler
      - python-minimal
      - libcap-dev
      - libaio-dev
      - libprotobuf-c0-dev
      - libprotobuf-dev

env:
  - TRAVIS_GOOS=windows TRAVIS_CGO_ENABLED=1
  - TRAVIS_GOOS=linux TRAVIS_CGO_ENABLED=1
  - TRAVIS_GOOS=darwin TRAVIS_CGO_ENABLED=0

before_install:
  - uname -r

install:
  - if [ "$TRAVIS_GOOS" = "windows" ] ; then sudo apt-get install -y gcc-multilib gcc-mingw-w64; export CC=x86_64-w64-mingw32-gcc ; export CXX=x86_64-w64-mingw32-g++ ; fi
  - wget https://github.com/google/protobuf/releases/download/v3.1.0/protoc-3.1.0-linux-x86_64.zip -O /tmp/protoc-3.1.0-linux-x86_64.zip
  - unzip -o -d /tmp/protobuf /tmp/protoc-3.1.0-linux-x86_64.zip
  - export PATH=$PATH:/tmp/protobuf/bin/
  - go get -u github.com/vbatts/git-validation
  - sudo wget https://github.com/crosbymichael/runc/releases/download/ctd-4/runc -O /bin/runc; sudo chmod +x /bin/runc
  - wget https://github.com/xemul/criu/archive/v3.0.tar.gz -O /tmp/criu.tar.gz
  - tar -C /tmp/ -zxf /tmp/criu.tar.gz
  - cd /tmp/criu-3.0 && sudo make install-criu
  - cd $TRAVIS_BUILD_DIR

script:
  - export GOOS=$TRAVIS_GOOS
  - export CGO_ENABLED=$TRAVIS_CGO_ENABLED
  - GIT_CHECK_EXCLUDE="./vendor" TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE/.../..}" make dco
  - make fmt
# FIXME: For non-linux GOOS, without running `go build -i`, vet fails with `vet: import failed: can't find import: fmt`...
# Note that `go build -i` requires write permission to GOROOT. (So it is not called in Makefile)
  - go build -i .
  - make vet
  - make build
  - make binaries
  - if [ "$GOOS" = "linux" ]; then sudo make install ; fi
  - if [ "$GOOS" = "linux" ]; then make coverage ; fi
  - if [ "$GOOS" = "linux" ]; then sudo PATH=$PATH GOPATH=$GOPATH make root-coverage ; fi
  - if [ "$GOOS" = "linux" ]; then sudo PATH=$PATH GOPATH=$GOPATH make integration ; fi

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