language: go
cache:
  directories:
    - ~/bitcoin/bitcoin-0.19.1/bin
    - $DOWNLOAD_CACHE
    - $GOCACHE
    - $GOPATH/pkg/mod
    - $GOPATH/src/github.com/btcsuite
    - $GOPATH/src/github.com/golang
    - $GOPATH/src/github.com/grpc-ecosystem
    - $GOPATH/src/gopkg.in/alecthomas
    - $GOPATH/src/google.golang.org

# Remove Travis' default flag --depth=50 from the git clone command to make sure
# we have the whole git history, including the commit we lint against.
git:
  depth: false

go:
  - "1.13.x"

env:
  global:
    - GOCACHE=$HOME/.go-build
    - DOWNLOAD_CACHE=$HOME/download_cache

sudo: required

addons:
  apt:
    packages:
      - clang-format

before_script:
  - bash ./scripts/install_travis_proto.sh
  - bash ./scripts/install_bitcoind.sh

jobs:
  include:
    - stage: Build
      script:
        - make rpc-check
        - make unit pkg=... case=_NONE_
        - make lint workers=1
        - make btcd
        - make release sys=windows-amd64
    - stage: Test
      script: make travis-cover
      name: Unit Cover
    - script: make travis-race
      name: Unit Race
    - script: make itest
      name: Btcd Integration
    - script: make itest backend=bitcoind
      name: Bitcoind Integration
    - script: make itest backend=neutrino
      name: Neutrino Integration

after_script:
  - LOG_FILES=./lntest/itest/*.log
  - echo "Uploading to termbin.com..." && find $LOG_FILES | xargs -I{} sh -c "cat {} | nc termbin.com 9999 | xargs -r0 printf '{} uploaded to %s'"
  - echo "Uploading to file.io..." && tar -zcvO $LOG_FILES | curl -s -F 'file=@-;filename=logs.tar.gz' https://file.io | xargs -r0 printf 'logs.tar.gz uploaded to %s\n'