# Use the (faster) container-based infrastructure, see also # http://docs.travis-ci.com/user/workers/container-based-infrastructure/ sudo: required dist: xenial services: - docker language: go go: - "1.10" install: - go get -t -v -d ./... # TODO: get rid of this once https://github.com/google/gopacket/pull/470 is merged - (cd $GOPATH/src/github.com/google/gopacket && wget -qO- https://patch-diff.githubusercontent.com/raw/google/gopacket/pull/470.patch | patch -p1) script: # Check whether files are syntactically correct. - "gofmt -l $(find . -name '*.go' | tr '\\n' ' ') >/dev/null" # Check whether files were not gofmt'ed. - "gosrc=$(find . -name '*.go' | tr '\\n' ' '); [ $(gofmt -l $gosrc 2>&- | wc -l) -eq 0 ] || (echo 'gofmt was not run on these files:'; gofmt -l $gosrc 2>&-; false)" # TODO: remove the || true suffix once vet errors are fixed - go tool vet . || true - go build ./cmd/... - go test -v -race ./internal/... - docker build --pull --no-cache --rm -t=router7 -f travis/Dockerfile . - sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 - sudo service docker restart # NOTE: this must be the last command because of the travis_terminate usage: - exit=0; for pkg in $(go list ./integration/...); do go test -c $pkg && docker run --privileged --net=host -v $PWD:/usr/src:ro router7 /bin/sh -c "./$(basename $pkg).test -test.v" || exit=1; done; [ $exit = 0 ] || travis_terminate 1