language: go

go:
  - 1.8.3
  - tip

matrix:
  allow_failures:
    - go: tip
  fast_finish: true

before_install:
  # Decrypts a script that installs an authenticated cookie
  # for git to use when cloning from googlesource.com.
  # Bypasses "bandwidth limit exceeded" errors.
  # See github.com/golang/go/issues/12933
 - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then openssl aes-256-cbc -K $encrypted_3df18f9af81d_key -iv $encrypted_3df18f9af81d_iv -in dist/gitcookie.sh.enc -out dist/gitcookie.sh -d; fi

install:
  - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash dist/gitcookie.sh; fi
  - go get -t ./...
  - go get github.com/golang/lint/golint
  - go get github.com/FiloSottile/vendorcheck
  # Install gometalinter and certain linters
  - go get github.com/alecthomas/gometalinter
  - go get github.com/client9/misspell/cmd/misspell
  - go get github.com/gordonklaus/ineffassign
  - go get golang.org/x/tools/cmd/goimports
  - go get github.com/tsenart/deadcode

script:
  - gometalinter --disable-all -E vet -E gofmt -E misspell -E ineffassign -E goimports -E deadcode --tests --vendor ./...
  - vendorcheck ./...
  # TODO: When Go 1.9 is released, replace $(go list) subcommand with ./... because vendor folder should be ignored
  - go test -race $(go list ./... | grep -v vendor)

after_script:
  # TODO: When Go 1.9 is released, replace $(go list) subcommand with ./... because vendor folder should be ignored
  - golint $(go list ./... | grep -v vendor)
