1language: go
2go_import_path: go.etcd.io/etcd
3
4sudo: required
5
6services: docker
7
8go:
9  - 1.13.3
10  - tip
11
12notifications:
13  on_success: never
14  on_failure: never
15
16env:
17  matrix:
18    - TARGET=linux-amd64-fmt
19    - TARGET=linux-amd64-integration-1-cpu
20    - TARGET=linux-amd64-integration-2-cpu
21    - TARGET=linux-amd64-integration-4-cpu
22    - TARGET=linux-amd64-functional
23    - TARGET=linux-amd64-unit
24    - TARGET=all-build
25    - TARGET=linux-amd64-grpcproxy
26    - TARGET=linux-amd64-coverage
27    - TARGET=linux-amd64-fmt-unit-go-tip
28    - TARGET=linux-386-unit
29
30matrix:
31  fast_finish: true
32  allow_failures:
33    - go: 1.13.3
34      env: TARGET=linux-amd64-grpcproxy
35    - go: 1.13.3
36      env: TARGET=linux-amd64-coverage
37    - go: tip
38      env: TARGET=linux-amd64-fmt-unit-go-tip
39    - go: 1.13.3
40      env: TARGET=linux-386-unit
41  exclude:
42    - go: tip
43      env: TARGET=linux-amd64-fmt
44    - go: tip
45      env: TARGET=linux-amd64-integration-1-cpu
46    - go: tip
47      env: TARGET=linux-amd64-integration-2-cpu
48    - go: tip
49      env: TARGET=linux-amd64-integration-4-cpu
50    - go: tip
51      env: TARGET=linux-amd64-functional
52    - go: tip
53      env: TARGET=linux-amd64-unit
54    - go: tip
55      env: TARGET=all-build
56    - go: tip
57      env: TARGET=linux-amd64-grpcproxy
58    - go: tip
59      env: TARGET=linux-amd64-coverage
60    - go: 1.13.3
61      env: TARGET=linux-amd64-fmt-unit-go-tip
62    - go: tip
63      env: TARGET=linux-386-unit
64
65before_install:
66  - if [[ $TRAVIS_GO_VERSION == 1.* ]]; then docker pull gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION}; fi
67
68install:
69  - go get -t -v -d ./...
70
71script:
72  - echo "TRAVIS_GO_VERSION=${TRAVIS_GO_VERSION}"
73  - >
74    case "${TARGET}" in
75      linux-amd64-fmt)
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='fmt bom dep' ./test"
79        ;;
80      linux-amd64-integration-1-cpu)
81        docker run --rm \
82          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
83          /bin/bash -c "GOARCH=amd64 CPU=1 PASSES='integration' ./test"
84        ;;
85      linux-amd64-integration-2-cpu)
86        docker run --rm \
87          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
88          /bin/bash -c "GOARCH=amd64 CPU=2 PASSES='integration' ./test"
89        ;;
90      linux-amd64-integration-4-cpu)
91        docker run --rm \
92          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
93          /bin/bash -c "GOARCH=amd64 CPU=4 PASSES='integration' ./test"
94        ;;
95      linux-amd64-functional)
96        docker run --rm \
97          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
98          /bin/bash -c "./build && GOARCH=amd64 PASSES='functional' ./test"
99        ;;
100      linux-amd64-unit)
101        docker run --rm \
102          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
103          /bin/bash -c "GOARCH=amd64 PASSES='unit' ./test"
104        ;;
105      all-build)
106        docker run --rm \
107          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
108          /bin/bash -c "GOARCH=amd64 PASSES='build' ./test \
109            && GOARCH=386 PASSES='build' ./test \
110            && GO_BUILD_FLAGS='-v' GOOS=darwin GOARCH=amd64 ./build \
111            && GO_BUILD_FLAGS='-v' GOOS=windows GOARCH=amd64 ./build \
112            && GO_BUILD_FLAGS='-v' GOARCH=arm ./build \
113            && GO_BUILD_FLAGS='-v' GOARCH=arm64 ./build \
114            && GO_BUILD_FLAGS='-v' GOARCH=ppc64le ./build \
115            && GO_BUILD_FLAGS='-v' GOARCH=s390x ./build"
116        ;;
117      linux-amd64-grpcproxy)
118        sudo HOST_TMP_DIR=/tmp TEST_OPTS="PASSES='build grpcproxy'" make docker-test
119        ;;
120      linux-amd64-coverage)
121        sudo HOST_TMP_DIR=/tmp make docker-test-coverage
122        ;;
123      linux-amd64-fmt-unit-go-tip)
124        GOARCH=amd64 PASSES='fmt unit' ./test
125        ;;
126      linux-386-unit)
127        docker run --rm \
128          --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
129          /bin/bash -c "GOARCH=386 PASSES='unit' ./test"
130        ;;
131    esac
132