language: go matrix: include: - go: 1.14.x env: VET=1 GO111MODULE=on - go: 1.14.x env: RACE=1 GO111MODULE=on - go: 1.14.x env: RUN386=1 - go: 1.14.x env: GRPC_GO_RETRY=on - go: 1.14.x env: TESTEXTRAS=1 - go: 1.13.x env: GO111MODULE=on - go: 1.12.x env: GO111MODULE=on - go: 1.11.x # Keep until interop tests no longer require Go1.11 env: GO111MODULE=on go_import_path: google.golang.org/grpc before_install: - if [[ "${GO111MODULE}" = "on" ]]; then mkdir "${HOME}/go"; export GOPATH="${HOME}/go"; fi - if [[ -n "${RUN386}" ]]; then export GOARCH=386; fi - if [[ "${TRAVIS_EVENT_TYPE}" = "cron" && -z "${RUN386}" ]]; then RACE=1; fi - if [[ "${TRAVIS_EVENT_TYPE}" != "cron" ]]; then export VET_SKIP_PROTO=1; fi install: - try3() { eval "$*" || eval "$*" || eval "$*"; } - try3 'if [[ "${GO111MODULE}" = "on" ]]; then go mod download; else make testdeps; fi' - if [[ -n "${VET}" ]]; then ./vet.sh -install; fi script: - set -e - if [[ -n "${TESTEXTRAS}" ]]; then examples/examples_test.sh; interop/interop_test.sh; make testsubmodule; exit 0; fi - if [[ -n "${VET}" ]]; then ./vet.sh; fi - if [[ -n "${RACE}" ]]; then make testrace; exit 0; fi - make test