language: go _dep_ensure: &_dep_ensure go: "1.10" 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/') -timeout 120s - if [ "$(go env GOARCH)" = "amd64" ]; then go test -race github.com/osrg/gobgp/packet/bgp -run ^Test_RaceCondition$; else echo 'skip'; fi - go build -o ./gobgp/gobgp ./gobgp/ - go build -o ./gobgpd/gobgpd ./gobgpd/ _build: &_build <<: *_dep_ensure script: - go build -o ./gobgp/gobgp ./gobgp/ - go build -o ./gobgpd/gobgpd ./gobgpd/ _node_js: &_node_js language: node_js node_js: "node" _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: # # Unit Tests # - <<: *_unittest env: - DESCRIPTION="Unit Tests" go: tip - <<: *_unittest env: - DESCRIPTION="Unit Tests" go: 1.9 - <<: *_unittest env: - DESCRIPTION="Unit Tests + goreleaser" go: "1.10" after_success: - test -n "$TRAVIS_TAG" && curl -sL https://git.io/goreleaser | bash - <<: *_unittest env: - DESCRIPTION="Unit Tests on i386" before_script: - export GOARCH="386" - go env # # 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 # # Misc # - <<: *_dep_ensure env: - DESCRIPTION="go fmt" script: test -z "$(go fmt $(go list ./... | grep -v '/vendor/'))" - <<: *_dep_ensure env: - DESCRIPTION="go vet" script: test -z "$(go vet $(go list ./... | grep -v '/vendor/'))" - <<: *_dep_ensure env: - DESCRIPTION="build_embeded_go.py" 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=rtc_test.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 # # Tools # - <<: *_node_js env: - DESCRIPTION="markdownlint" before_script: - npm install -g markdownlint-cli script: - markdownlint $(find . -type f -name '*.md' | grep -v '/vendor/') - <<: *_python env: - DESCRIPTION="Tools" install: pip install scspell3k script: - bash tools/spell-check/scspell.sh - bash tools/grep_avoided_functions.sh cache: pip: true go_import_path: github.com/osrg/gobgp notifications: slack: secure: KzuC9kytzS7wTlfj4MqSg8EpqXfJRMbo59dAVTA3w587achnVCS3vhUenWuhMCiWk7+6DVWwNpwzn2+A0S6RwMFMpKAU6Ij6K9sxEOgqBGuMN8w1//w+uJTryzsnebEIhInGt2kKfqz4Wx3QQqW5gVhI+8s+c5M0iXxFtN4soVk=