language: go
go_import_path: go.etcd.io/etcd/v3

sudo: required

services: docker

go:
  - "1.16.15"
  - tip

notifications:
  on_success: never
  on_failure: never

env:
  matrix:
    - TARGET=linux-amd64-coverage
    - TARGET=linux-amd64-fmt-unit-go-tip-2-cpu

matrix:
  fast_finish: true
  allow_failures:
    - go: "1.16.15"
      env: TARGET=linux-amd64-coverage
    - go: tip
      env: TARGET=linux-amd64-fmt-unit-go-tip-2-cpu
  exclude:
    - go: tip
      env: TARGET=linux-amd64-coverage
    - go: "1.16.15"
      env: TARGET=linux-amd64-fmt-unit-go-tip-2-cpu

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

install:
  - date

script:
  - date
  - echo "TRAVIS_GO_VERSION=${TRAVIS_GO_VERSION}"
  - >
    case "${TARGET}" in
      linux-amd64-coverage)
        sudo HOST_TMP_DIR=/tmp TEST_OPTS="VERBOSE='1'" make docker-test-coverage
        ;;
      linux-amd64-fmt-unit-go-tip-2-cpu)
        GOARCH=amd64 PASSES='fmt unit' CPU='2' RACE='false' ./test.sh -p=2
        ;;
    esac
