github.com/osrg/gobgp@v2.0.0+incompatible/.travis.yml (about)

     1  language: go
     2  
     3  _dep_ensure: &_dep_ensure
     4    go: "1.11"
     5    before_install: go get -u github.com/golang/dep/cmd/dep
     6    install: $GOPATH/bin/dep ensure
     7  
     8  _unittest: &_unittest
     9    <<: *_dep_ensure
    10    script:
    11      - go test $([ $(go env GOARCH) == 'amd64' ] && echo '-race') $(go list ./... | grep -v '/vendor/') -timeout 120s
    12      - if [ "$(go env GOARCH)" = "amd64" ]; then go test -race github.com/osrg/gobgp/pkg/packet/bgp -run ^Test_RaceCondition$; else echo 'skip'; fi
    13  
    14  _build: &_build
    15    <<: *_dep_ensure
    16    script:
    17      - go build -o ./cmd/gobgp/gobgp   ./cmd/gobgp/
    18      - go build -o ./cmd/gobgpd/gobgpd ./cmd/gobgpd/
    19  
    20  _node_js: &_node_js
    21    language: node_js
    22    node_js: "node"
    23  
    24  _python: &_python
    25    language: python
    26    python: "2.7"
    27  
    28  _docker: &_docker
    29    <<: *_python
    30    sudo: required
    31    dist: trusty
    32    group: deprecated-2017Q4
    33    before_install:
    34      - test $TRAVIS_OS_NAME == "linux" && sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
    35      - test $TRAVIS_OS_NAME == "linux" && sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
    36      - test $TRAVIS_OS_NAME == "linux" && sudo sysctl -w net.ipv6.conf.docker0.disable_ipv6=1
    37    install:
    38      - pip install -r test/pip-requires.txt
    39      - fab -f test/lib/base.py make_gobgp_ctn:tag=$DOCKER_IMAGE,from_image=$FROM_IMAGE
    40    script:
    41      - PYTHONPATH=test python test/scenario_test/$TEST --gobgp-image $DOCKER_IMAGE -x -s
    42    services:
    43      - docker
    44  
    45  env:
    46    global:
    47      - DOCKER_IMAGE=gobgp
    48      - FROM_IMAGE=osrg/quagga
    49  
    50  matrix:
    51    allow_failures:
    52      - go: tip
    53  
    54    include:
    55  #
    56  # Unit Tests
    57  #
    58      - <<: *_unittest
    59        env:
    60          - DESCRIPTION="Unit Tests Tip"
    61        go: tip
    62      - <<: *_unittest
    63        env:
    64          - DESCRIPTION="Unit Tests"
    65        go: 1.11
    66      - <<: *_unittest
    67        env:
    68          - DESCRIPTION="Tests + goreleaser + cover"
    69        go: "1.11"
    70        script:
    71          - go test $(go list ./... | grep -v '/vendor/') -coverprofile=coverage.txt -covermode=atomic
    72        after_success:
    73          - test -n "$TRAVIS_TAG" && curl -sL https://git.io/goreleaser | bash
    74          - bash <(curl -s https://codecov.io/bash)
    75      - <<: *_unittest
    76        env:
    77          - DESCRIPTION="Unit Tests on i386"
    78        before_script:
    79          - export GOARCH="386"
    80          - go env
    81  
    82  #
    83  # Cross-compile
    84  #
    85  # Note: We use "before_script" to enable "go env" settings. The following keeps
    86  # "env" sections as just markers of Travis-CI Web UI.
    87  # See https://github.com/travis-ci/travis-ci/issues/6126
    88      - <<: *_build
    89        env:
    90          - GOOS="openbsd"
    91        before_script:
    92          - export GOOS="openbsd"
    93          - go env
    94      - <<: *_build
    95        env:
    96          - GOOS="freebsd"
    97        before_script:
    98          - export GOOS="freebsd"
    99          - go env
   100      - <<: *_build
   101        env:
   102          - GOOS="darwin"
   103        before_script:
   104          - export GOOS="darwin"
   105          - go env
   106  #
   107  # Misc
   108  #
   109      - <<: *_dep_ensure
   110        env:
   111          - DESCRIPTION="go fmt + vet + megacheck"
   112        before_script: go get -u honnef.co/go/tools/cmd/megacheck
   113        script:
   114          - test -z "$(go fmt $(go list ./... | grep -v '/vendor/'))"
   115          - go vet $(go list ./... | grep -v '/vendor/')
   116          - megacheck $(go list ./... | grep -v '/vendor/')
   117      - <<: *_dep_ensure
   118        env:
   119          - DESCRIPTION="build_embeded_go.py"
   120        script: python test/scenario_test/ci-scripts/build_embeded_go.py docs/sources/lib.md
   121  #
   122  # Docker
   123  #
   124      - <<: *_docker
   125        env:
   126          - TEST=bgp_router_test.py
   127      - <<: *_docker
   128        env:
   129          - TEST=bgp_zebra_test.py
   130      - <<: *_docker
   131        env:
   132          - TEST=bgp_zebra_nht_test.py FROM_IMAGE=osrg/quagga:v1.0
   133      - <<: *_docker
   134        env:
   135          - TEST=evpn_test.py
   136      - <<: *_docker
   137        env:
   138          - TEST=flow_spec_test.py
   139      - <<: *_docker
   140        env:
   141          - TEST=global_policy_test.py
   142      - <<: *_docker
   143        env:
   144          - TEST=graceful_restart_test.py
   145      - <<: *_docker
   146        env:
   147          - TEST=ibgp_router_test.py
   148      - <<: *_docker
   149        env:
   150          - TEST=route_reflector_test.py
   151      - <<: *_docker
   152        env:
   153          - TEST=route_server_as2_test.py
   154      - <<: *_docker
   155        env:
   156          - TEST=route_server_ipv4_v6_test.py
   157      - <<: *_docker
   158        env:
   159          - TEST=route_server_malformed_test.py
   160      - <<: *_docker
   161        env:
   162          - TEST=route_server_policy_grpc_test.py
   163      - <<: *_docker
   164        env:
   165          - TEST=route_server_policy_test.py
   166      - <<: *_docker
   167        env:
   168          - TEST=route_server_softreset_test.py
   169      - <<: *_docker
   170        env:
   171          - TEST=route_server_test.py
   172      - <<: *_docker
   173        env:
   174          - TEST=route_server_test2.py
   175      - <<: *_docker
   176        env:
   177          - TEST=zapi_v3_test.py FROM_IMAGE=osrg/quagga:v1.0
   178      - <<: *_docker
   179        env:
   180          - TEST=long_lived_graceful_restart_test.py
   181      - <<: *_docker
   182        env:
   183          - TEST=vrf_neighbor_test.py
   184      - <<: *_docker
   185        env:
   186          - TEST=vrf_neighbor_test2.py
   187      - <<: *_docker
   188        env:
   189          - TEST=rtc_test.py
   190      - <<: *_docker
   191        env:
   192          - TEST=bgp_unnumbered_test.py
   193      - <<: *_docker
   194        env:
   195          - TEST=aspath_test.py
   196      - <<: *_docker
   197        env:
   198          - TEST=addpath_test.py
   199      - <<: *_docker
   200        env:
   201          - TEST=bgp_malformed_msg_handling_test.py
   202      - <<: *_docker
   203        env:
   204          - TEST=bgp_confederation_test.py
   205  #
   206  # Tools
   207  #
   208      - <<: *_node_js
   209        env:
   210          - DESCRIPTION="markdownlint"
   211        before_script:
   212          - npm install -g markdownlint-cli
   213        script:
   214          - markdownlint $(find . -type f -name '*.md' | grep -v '/vendor/')
   215      - <<: *_python
   216        env:
   217          - DESCRIPTION="Tools"
   218        install: pip install scspell3k
   219        script:
   220          - bash tools/spell-check/scspell.sh
   221          - bash tools/grep_avoided_functions.sh
   222  
   223  cache:
   224    pip: true
   225  
   226  go_import_path: github.com/osrg/gobgp
   227  
   228  notifications:
   229   slack:
   230    secure: KzuC9kytzS7wTlfj4MqSg8EpqXfJRMbo59dAVTA3w587achnVCS3vhUenWuhMCiWk7+6DVWwNpwzn2+A0S6RwMFMpKAU6Ij6K9sxEOgqBGuMN8w1//w+uJTryzsnebEIhInGt2kKfqz4Wx3QQqW5gVhI+8s+c5M0iXxFtN4soVk=