language: go
go: 1.3

# let us have pretty experimental Docker-based Travis workers
sudo: false

env:
    - TRAVIS_GLOBAL_WTF=1
    - _GOOS=linux _GOARCH=amd64 CGO_ENABLED=1
    - _GOOS=linux _GOARCH=amd64 CGO_ENABLED=0
#    - _GOOS=linux _GOARCH=386 CGO_ENABLED=1 # TODO add this once Travis can handle it (https://github.com/travis-ci/travis-ci/issues/2207#issuecomment-49625061)
    - _GOOS=linux _GOARCH=386 CGO_ENABLED=0
    - _GOOS=linux _GOARCH=arm CGO_ENABLED=0

install:
    - go get code.google.com/p/go.tools/cmd/cover
    - mkdir -pv "${GOPATH%%:*}/src/github.com/docker" && [ -d "${GOPATH%%:*}/src/github.com/docker/libcontainer" ] || ln -sv "$(readlink -f .)" "${GOPATH%%:*}/src/github.com/docker/libcontainer"
    - if [ -z "$TRAVIS_GLOBAL_WTF" ]; then
          gvm cross "$_GOOS" "$_GOARCH";
          export GOOS="$_GOOS" GOARCH="$_GOARCH";
      fi
    - export GOPATH="$GOPATH:$(pwd)/vendor"
    - if [ -z "$TRAVIS_GLOBAL_WTF" ]; then go env; fi
    - go get -d -v ./... # TODO remove this if /docker/docker gets purged from our includes
    - if [ "$TRAVIS_GLOBAL_WTF" ]; then
          export DOCKER_PATH="${GOPATH%%:*}/src/github.com/docker/docker";
          mkdir -p "$DOCKER_PATH/hack/make";
          ( cd "$DOCKER_PATH/hack/make" && wget -c 'https://raw.githubusercontent.com/docker/docker/master/hack/make/'{.validate,validate-dco,validate-gofmt} );
          sed -i 's!docker/docker!docker/libcontainer!' "$DOCKER_PATH/hack/make/.validate";
      fi

script:
    - if [ "$TRAVIS_GLOBAL_WTF" ]; then bash "$DOCKER_PATH/hack/make/validate-dco"; fi
    - if [ "$TRAVIS_GLOBAL_WTF" ]; then bash "$DOCKER_PATH/hack/make/validate-gofmt"; fi
    - if [ -z "$TRAVIS_GLOBAL_WTF" ]; then make direct-build; fi
    - if [ -z "$TRAVIS_GLOBAL_WTF" -a "$GOARCH" != 'arm' ]; then make direct-test-short; fi
