language: go

os:
  - linux
  - osx

go:
  - 1.16.x

install:
  # go-flags
  - go build -v ./...

  # linting
  - go get -v golang.org/x/lint/golint

  # code coverage
  - go get golang.org/x/tools/cmd/cover
  - go get github.com/onsi/ginkgo/ginkgo
  - go get github.com/modocache/gover
  - if [ "$TRAVIS_SECURE_ENV_VARS" = "true" ]; then go get github.com/mattn/goveralls; fi

script:
  # go-flags
  - $(exit $(gofmt -l . | wc -l))
  - go test -v ./...

  # linting
  - go tool vet -all=true -v=true . || true
  - $(go env GOPATH | awk 'BEGIN{FS=":"} {print $1}')/bin/golint ./...

  # code coverage
  - $(go env GOPATH | awk 'BEGIN{FS=":"} {print $1}')/bin/ginkgo -r -cover
  - $(go env GOPATH | awk 'BEGIN{FS=":"} {print $1}')/bin/gover
  - if [ "$TRAVIS_SECURE_ENV_VARS" = "true" ]; then $(go env GOPATH | awk 'BEGIN{FS=":"} {print $1}')/bin/goveralls -coverprofile=gover.coverprofile -service=travis-ci -repotoken $COVERALLS_TOKEN; fi

env:
  # coveralls.io
  secure: "RCYbiB4P0RjQRIoUx/vG/AjP3mmYCbzOmr86DCww1Z88yNcy3hYr3Cq8rpPtYU5v0g7wTpu4adaKIcqRE9xknYGbqj3YWZiCoBP1/n4Z+9sHW3Dsd9D/GRGeHUus0laJUGARjWoCTvoEtOgTdGQDoX7mH+pUUY0FBltNYUdOiiU="