language: go
go_import_path: github.com/coreos/etcd

sudo: required

services: docker

go:
- 1.9.7

notifications:
  on_success: never
  on_failure: never

env:
  matrix:
  - TARGET=linux-amd64-build
  - TARGET=linux-amd64-unit
  - TARGET=linux-amd64-integration
  - TARGET=linux-amd64-functional
  - TARGET=linux-386-build
  - TARGET=linux-386-unit
  - TARGET=darwin-amd64-build
  - TARGET=windows-amd64-build
  - TARGET=linux-arm-build
  - TARGET=linux-arm64-build
  - TARGET=linux-ppc64le-build

matrix:
  fast_finish: true

before_install:
- if [[ $TRAVIS_GO_VERSION == 1.* ]]; then docker pull gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION}; fi

install:
- pushd cmd/etcd && go get -t -v ./... && popd

script:
 - echo "TRAVIS_GO_VERSION=${TRAVIS_GO_VERSION}"
 - >
    case "${TARGET}" in
      linux-amd64-build)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GOARCH=amd64 PASSES='build' ./test"
        ;;
      linux-amd64-unit)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GOARCH=amd64 PASSES='unit' ./test"
        ;;
      linux-amd64-integration)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GOARCH=amd64 PASSES='integration' ./test"
        ;;
      linux-amd64-functional)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "./build && GOARCH=amd64 PASSES='build functional' ./test"
        ;;
      linux-386-build)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GOARCH=386 PASSES='build' ./test"
        ;;
      linux-386-unit)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GOARCH=386 PASSES='unit' ./test"
        ;;
      darwin-amd64-build)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GO_BUILD_FLAGS='-v' GOOS=darwin GOARCH=amd64 ./build"
        ;;
      windows-amd64-build)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GO_BUILD_FLAGS='-v' GOOS=windows GOARCH=amd64 ./build"
        ;;
      linux-arm-build)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GO_BUILD_FLAGS='-v' GOARCH=arm ./build"
        ;;
      linux-arm64-build)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GO_BUILD_FLAGS='-v' GOARCH=arm64 ./build"
        ;;
      linux-ppc64le-build)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
          /bin/bash -c "GO_BUILD_FLAGS='-v' GOARCH=ppc64le ./build"
        ;;
    esac
