summaryrefslogtreecommitdiffhomepage
path: root/.travis.yml
blob: 4ee2755b62226fc6403136eb2366af93d74a589e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
language: go

_dep_ensure: &_dep_ensure
  go: 1.8
  before_install: go get -u github.com/golang/dep/cmd/dep
  install: $GOPATH/bin/dep ensure

_unittest: &_unittest
  <<: *_dep_ensure
  script: go test $(go list ./... | grep -v '/vendor/')

_build: &_build
  <<: *_dep_ensure
  script:
    - go build -o ./gobgp/gobgp   ./gobgp/
    - go build -o ./gobgpd/gobgpd ./gobgpd/

_python: &_python
  language: python
  python: "2.7"

_docker: &_docker
  <<: *_python
  sudo: required
  dist: trusty
  group: deprecated-2017Q4
  before_install:
    - test $TRAVIS_OS_NAME == "linux" && sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
    - test $TRAVIS_OS_NAME == "linux" && sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
    - test $TRAVIS_OS_NAME == "linux" && sudo sysctl -w net.ipv6.conf.docker0.disable_ipv6=1
  install:
    - pip install -r test/pip-requires.txt
    - fab -f test/lib/base.py make_gobgp_ctn:tag=$DOCKER_IMAGE,from_image=$FROM_IMAGE
  script:
    - PYTHONPATH=test python test/scenario_test/$TEST --gobgp-image $DOCKER_IMAGE -x -s
  services:
    - docker

env:
  global:
    - DOCKER_IMAGE=gobgp
    - FROM_IMAGE=osrg/quagga

matrix:
  allow_failures:
    - go: tip
  include:
    - <<: *_unittest
      go: tip
    - <<: *_unittest
      go: 1.8
    - <<: *_unittest
      go: 1.9
      after_success:
        - test -n "$TRAVIS_TAG" && curl -sL https://git.io/goreleaser | bash
#
# Cross-compile
#
# Note: We use "before_script" to enable "go env" settings. The following keeps
# "env" sections as just markers of Travis-CI Web UI.
# See https://github.com/travis-ci/travis-ci/issues/6126
    - <<: *_build
      env:
        - GOOS="windows"
      before_script:
        - export GOOS="windows"
        - go env
    - <<: *_build
      env:
        - GOOS="freebsd"
      before_script:
        - export GOOS="freebsd"
        - go env
    - <<: *_build
      env:
        - GOOS="darwin"
      before_script:
        - export GOOS="darwin"
        - go env
    - <<: *_build
      env:
        - GOARCH="386"
      before_script:
        - export GOARCH="386"
        - go env
#
# Misc
#
    - <<: *_dep_ensure
      script: test -z "$(go fmt $(go list ./... | grep -v '/vendor/'))"
    - <<: *_dep_ensure
      script: test -z "$(go vet $(go list ./... | grep -v '/vendor/'))"
    - <<: *_dep_ensure
      script: python test/scenario_test/ci-scripts/build_embeded_go.py docs/sources/lib.md
#
# Docker
#
    - <<: *_docker
      env:
        - TEST=bgp_router_test.py
    - <<: *_docker
      env:
        - TEST=bgp_zebra_test.py
    - <<: *_docker
      env:
        - TEST=bgp_zebra_nht_test.py FROM_IMAGE=osrg/quagga:v1.0
    - <<: *_docker
      env:
        - TEST=evpn_test.py
    - <<: *_docker
      env:
        - TEST=flow_spec_test.py
    - <<: *_docker
      env:
        - TEST=global_policy_test.py
    - <<: *_docker
      env:
        - TEST=graceful_restart_test.py
    - <<: *_docker
      env:
        - TEST=ibgp_router_test.py
    - <<: *_docker
      env:
        - TEST=route_reflector_test.py
    - <<: *_docker
      env:
        - TEST=route_server_as2_test.py
    - <<: *_docker
      env:
        - TEST=route_server_ipv4_v6_test.py
    - <<: *_docker
      env:
        - TEST=route_server_malformed_test.py
    - <<: *_docker
      env:
        - TEST=route_server_policy_grpc_test.py
    - <<: *_docker
      env:
        - TEST=route_server_policy_test.py
    - <<: *_docker
      env:
        - TEST=route_server_softreset_test.py
    - <<: *_docker
      env:
        - TEST=route_server_test.py
    - <<: *_docker
      env:
        - TEST=route_server_test2.py
    - <<: *_docker
      env:
        - TEST=zapi_v3_test.py FROM_IMAGE=osrg/quagga:v1.0
    - <<: *_docker
      env:
        - TEST=long_lived_graceful_restart_test.py
    - <<: *_docker
      env:
        - TEST=vrf_neighbor_test.py
    - <<: *_docker
      env:
        - TEST=vrf_neighbor_test2.py
    - <<: *_docker
      env:
        - TEST=bgp_unnumbered_test.py
    - <<: *_docker
      env:
        - TEST=aspath_test.py
    - <<: *_docker
      env:
        - TEST=addpath_test.py
    - <<: *_docker
      env:
        - TEST=bgp_malformed_msg_handling_test.py
    - <<: *_docker
      env:
        - TEST=bgp_confederation_test.py
#
# Spell Check
#
    - <<: *_python
      install: pip install scspell3k
      script: bash tools/spell-check/scspell.sh

cache:
  pip: true

go_import_path: github.com/osrg/gobgp

notifications:
 slack:
  secure: KzuC9kytzS7wTlfj4MqSg8EpqXfJRMbo59dAVTA3w587achnVCS3vhUenWuhMCiWk7+6DVWwNpwzn2+A0S6RwMFMpKAU6Ij6K9sxEOgqBGuMN8w1//w+uJTryzsnebEIhInGt2kKfqz4Wx3QQqW5gVhI+8s+c5M0iXxFtN4soVk=