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

sudo: required

services: docker

go:
- 1.8.5
- tip

notifications:
  on_success: never
  on_failure: never

env:
  matrix:
  - TARGET=amd64
  - TARGET=amd64-go-tip
  - TARGET=darwin-amd64
  - TARGET=windows-amd64
  - TARGET=arm64
  - TARGET=arm
  - TARGET=386
  - TARGET=ppc64le

matrix:
  fast_finish: true
  allow_failures:
  - go: tip
    env: TARGET=amd64-go-tip
  exclude:
  - go: 1.8.5
    env: TARGET=amd64-go-tip
  - go: tip
    env: TARGET=amd64
  - go: tip
    env: TARGET=darwin-amd64
  - go: tip
    env: TARGET=windows-amd64
  - go: tip
    env: TARGET=arm
  - go: tip
    env: TARGET=arm64
  - go: tip
    env: TARGET=386
  - go: tip
    env: TARGET=ppc64le

before_install:
- docker pull gcr.io/etcd-development/etcd-test:go1.8.5

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

script:
 - >
    case "${TARGET}" in
      amd64)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go1.8.5 \
          /bin/bash -c "GOARCH=amd64 ./test"
        ;;
      amd64-go-tip)
        GOARCH=amd64 ./test
        ;;
      darwin-amd64)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go1.8.5 \
          /bin/bash -c "GO_BUILD_FLAGS='-a -v' GOOS=darwin GOARCH=amd64 ./build"
        ;;
      windows-amd64)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go1.8.5 \
          /bin/bash -c "GO_BUILD_FLAGS='-a -v' GOOS=windows GOARCH=amd64 ./build"
        ;;
      386)
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go1.8.5 \
          /bin/bash -c "GOARCH=386 PASSES='build unit' ./test"
        ;;
      *)
        # test building out of gopath
        docker run --rm \
          --volume=`pwd`:/go/src/github.com/coreos/etcd gcr.io/etcd-development/etcd-test:go1.8.5 \
          /bin/bash -c "GO_BUILD_FLAGS='-a -v' GOARCH='${TARGET}' ./build"
        ;;
    esac
