language: go _unittest: &_unittest go: "1.13" script: - go test $([ $(go env GOARCH) == 'amd64' ] && echo '-race') -timeout 240s ./... - if [ "$(go env GOARCH)" = "amd64" ]; then go test -race github.com/osrg/gobgp/pkg/packet/bgp -run ^Test_RaceCondition$; else echo 'skip'; fi _build: &_build go: "1.13" script: - go build -o ./cmd/gobgp/gobgp ./cmd/gobgp/ - go build -o ./cmd/gobgpd/gobgpd ./cmd/gobgpd/ _node_js: &_node_js language: node_js node_js: "node" _python: &_python language: python python: "3.6" _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 - curl -fsSL https://apt.dockerproject.org/gpg | sudo apt-key add - - sudo add-apt-repository "deb https://apt.dockerproject.org/repo ubuntu-trusty main" - sudo apt-get update - sudo apt-get -y install docker-engine=17.03.1~ce-0~ubuntu-trusty install: - pip3 install -r test/pip-requires.txt - fab -r test/lib make-gobgp-ctn --tag $DOCKER_IMAGE --from-image $FROM_IMAGE script: - PYTHONPATH=test python3 test/scenario_test/$TEST --gobgp-image $DOCKER_IMAGE -x -s env: global: - GO111MODULE=on - DOCKER_IMAGE=gobgp - FROM_IMAGE=osrg/quagga matrix: allow_failures: - go: tip include: # # Unit Tests # - <<: *_unittest env: - DESCRIPTION="Unit Tests Tip" go: tip - <<: *_unittest env: - DESCRIPTION="Unit Tests" go: "1.13" - <<: *_unittest env: - DESCRIPTION="Tests + cover" go: "1.13" script: - go test -coverprofile=coverage.txt -covermode=atomic ./... after_success: - bash <(curl -s https://codecov.io/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="openbsd" before_script: - export GOOS="openbsd" - 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 # - go: "1.13" env: - DESCRIPTION="go fmt + vet + staticcheck" before_script: go get -u honnef.co/go/tools/cmd/staticcheck script: - test -z "$(go fmt ./...)" - go vet ./... - staticcheck ./... - go: "1.13" 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=zapi_v3_multipath_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') - <<: *_python env: - DESCRIPTION="Tools" install: pip install scspell3k script: - bash tools/spell-check/scspell.sh - bash tools/grep_avoided_functions.sh cache: pip: true notifications: slack: secure: KzuC9kytzS7wTlfj4MqSg8EpqXfJRMbo59dAVTA3w587achnVCS3vhUenWuhMCiWk7+6DVWwNpwzn2+A0S6RwMFMpKAU6Ij6K9sxEOgqBGuMN8w1//w+uJTryzsnebEIhInGt2kKfqz4Wx3QQqW5gVhI+8s+c5M0iXxFtN4soVk=