1language: go
2go_import_path: go.etcd.io/etcd
3
4sudo: required
5
6services: docker
7
8go:
9- 1.12.12
10
11notifications:
12  on_success: never
13  on_failure: never
14
15env:
16  matrix:
17  - TARGET=linux-amd64-fmt
18  - TARGET=linux-amd64-integration-1-cpu
19  - TARGET=linux-amd64-integration-2-cpu
20  - TARGET=linux-amd64-integration-4-cpu
21  - TARGET=linux-amd64-functional
22  - TARGET=linux-amd64-unit
23  - TARGET=all-build
24  - TARGET=linux-amd64-grpcproxy
25  - TARGET=linux-386-unit
26
27matrix:
28  fast_finish: true
29  allow_failures:
30  - go: 1.12.12
31    env: TARGET=linux-amd64-grpcproxy
32  - go: 1.12.12
33    env: TARGET=linux-386-unit
34
35before_install:
36- if [[ $TRAVIS_GO_VERSION == 1.* ]]; then docker pull gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION}; fi
37
38install:
39- go get -t -v -d ./...
40
41script:
42 - echo "TRAVIS_GO_VERSION=${TRAVIS_GO_VERSION}"
43 - >
44    case "${TARGET}" in
45      linux-amd64-fmt)
46        docker run --rm \
47          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
48          /bin/bash -c "GOARCH=amd64 PASSES='fmt bom dep' ./test"
49        ;;
50      linux-amd64-integration-1-cpu)
51        docker run --rm \
52          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
53          /bin/bash -c "GOARCH=amd64 CPU=1 PASSES='integration' ./test"
54        ;;
55      linux-amd64-integration-2-cpu)
56        docker run --rm \
57          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
58          /bin/bash -c "GOARCH=amd64 CPU=2 PASSES='integration' ./test"
59        ;;
60      linux-amd64-integration-4-cpu)
61        docker run --rm \
62          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
63          /bin/bash -c "GOARCH=amd64 CPU=4 PASSES='integration' ./test"
64        ;;
65      linux-amd64-functional)
66        docker run --rm \
67          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
68          /bin/bash -c "./build && GOARCH=amd64 PASSES='functional' ./test"
69        ;;
70      linux-amd64-unit)
71        docker run --rm \
72          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
73          /bin/bash -c "GOARCH=amd64 PASSES='unit' ./test"
74        ;;
75      all-build)
76        docker run --rm \
77          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
78          /bin/bash -c "GOARCH=amd64 PASSES='build' ./test \
79            && GOARCH=386 PASSES='build' ./test \
80            && GO_BUILD_FLAGS='-v' GOOS=darwin GOARCH=amd64 ./build \
81            && GO_BUILD_FLAGS='-v' GOOS=windows GOARCH=amd64 ./build \
82            && GO_BUILD_FLAGS='-v' GOARCH=arm ./build \
83            && GO_BUILD_FLAGS='-v' GOARCH=arm64 ./build \
84            && GO_BUILD_FLAGS='-v' GOARCH=ppc64le ./build"
85        ;;
86      linux-amd64-grpcproxy)
87        sudo HOST_TMP_DIR=/tmp TEST_OPTS="PASSES='build grpcproxy'" make docker-test
88        ;;
89      linux-386-unit)
90        docker run --rm \
91          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
92          /bin/bash -c "GOARCH=386 PASSES='unit' ./test"
93        ;;
94    esac
95