a93aaff2fd
To speed up tests and also not DoS termbin and file.io, we only upload the integration test logs on failure.
100 lines
2.8 KiB
YAML
100 lines
2.8 KiB
YAML
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.14.x"
|
|
|
|
env:
|
|
global:
|
|
- GOCACHE=$HOME/.go-build
|
|
- DOWNLOAD_CACHE=$HOME/download_cache
|
|
|
|
sudo: required
|
|
|
|
jobs:
|
|
include:
|
|
- stage: Sanity Check
|
|
name: Lint and compile
|
|
before_script:
|
|
# Install the RPC tools as a before step so Travis collapses the output
|
|
# after it's done.
|
|
- ./scripts/install_travis_proto.sh
|
|
|
|
script:
|
|
# Step 1: Make sure no diff is produced when compiling with the correct
|
|
# version.
|
|
- make rpc-check
|
|
|
|
# Step 2: Make sure the unit tests compile, but don't run them. They run
|
|
# in a GitHub Workflow.
|
|
- make unit pkg=... case=_NONE_
|
|
|
|
# Step 3: Lint go code. Limit to 1 worker to reduce memory usage.
|
|
- make lint workers=1
|
|
|
|
- stage: Integration Test
|
|
name: Btcd Integration
|
|
script:
|
|
- make itest
|
|
|
|
- name: Bitcoind Integration
|
|
script:
|
|
- bash ./scripts/install_bitcoind.sh
|
|
- make itest backend=bitcoind
|
|
|
|
- name: Neutrino Integration
|
|
script:
|
|
- make itest backend=neutrino
|
|
|
|
- name: Btcd Integration ARM
|
|
script:
|
|
- GOARM=7 GOARCH=arm GOOS=linux CGO_ENABLED=0 make btcd build-itest
|
|
- file lnd-itest
|
|
- GOARM=7 GOARCH=arm GOOS=linux CGO_ENABLED=0 make itest-only
|
|
arch: arm64
|
|
|
|
- name: Btcd Integration Windows
|
|
script:
|
|
- make itest-windows
|
|
os: windows
|
|
before_install:
|
|
- choco upgrade --no-progress -y make netcat curl findutils
|
|
- export MAKE=mingw32-make
|
|
after_failure:
|
|
- |-
|
|
case $TRAVIS_OS_NAME in
|
|
windows)
|
|
echo "Uploading to termbin.com..."
|
|
for f in ./lntest/itest/*.log; do cat $f | nc termbin.com 9999 | xargs -r0 printf "$f"' uploaded to %s'; done
|
|
;;
|
|
esac
|
|
|
|
after_failure:
|
|
- |-
|
|
case $TRAVIS_OS_NAME in
|
|
windows)
|
|
# Needs other commands, see after_script of the Windows build
|
|
;;
|
|
|
|
*)
|
|
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'
|
|
;;
|
|
esac
|