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.15.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. Invoke GC more often to reduce memory usage.
|
|
- GOGC=30 make lint
|
|
|
|
- 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
|