a6a7aca8af
This commit adds an integration test that runs on a Windows virtual machine on Travis. The tests run inside of a "Git Bash" environment which supports the same command line syntax as a proper bash but doesn't have all the tooling installed. Some tools also behave differently on Windows. Therefore we also have to simplify the command to upload the logs to termbin and remove the upload to file.io on Windows because both the find and tar command don't work as expected.
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_script:
|
|
- |-
|
|
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_script:
|
|
- |-
|
|
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
|