language: go

os:
  - linux
  - osx

addons:
  apt:
    update: true

env:
  matrix:
    - GOTAGS=
    - GOTAGS=libsqlite3
    - GOTAGS="sqlite_allow_uri_authority sqlite_app_armor sqlite_foreign_keys sqlite_fts5 sqlite_icu sqlite_introspect sqlite_json sqlite_secure_delete sqlite_see sqlite_stat4 sqlite_trace sqlite_userauth sqlite_vacuum_incr sqlite_vtable sqlite_unlock_notify"
    - GOTAGS=sqlite_vacuum_full

go:
  - 1.9.x
  - 1.10.x
  - 1.11.x

before_install:
  - |
    if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then 
      brew update
    fi
  - |
    go get github.com/smartystreets/goconvey
    if [[ "${GOOS}" != "windows" ]]; then
      go get github.com/mattn/goveralls
      go get golang.org/x/tools/cmd/cover
    fi

script:
  - GOOS=$(go env GOOS) GOARCH=$(go env GOARCH) go build -v -tags "${GOTAGS}" .
  - |
    if [[ "${GOOS}" != "windows" ]]; then
      $HOME/gopath/bin/goveralls -repotoken 3qJVUE0iQwqnCbmNcDsjYu1nh4J4KIFXx
      go test -race -v . -tags "${GOTAGS}"
    fi
