X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=rust-lightning;a=blobdiff_plain;f=.travis.yml;h=0c36806c63c059869d44f3e56082340cbf03eca6;hp=efdff130b0df85d87b7f7b34e4964aa76a8db100;hb=4243b40c7748228d8b54531ce6871e8b48c03e7f;hpb=f5ff5d1ad011a43a4ed1b86c29bf7ea67dca6f17 diff --git a/.travis.yml b/.travis.yml index efdff130..0c36806c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,15 +2,43 @@ language: rust rust: - stable - beta + # 1.22.0 is MSRV for rust-lightning in general: - 1.22.0 - - 1.29.2 + # 1.34.2 is Debian stable + - 1.34.2 + # 1.39.0 is MSRV for lightning-net-tokio and generates coverage + - 1.39.0 cache: cargo before_install: - sudo apt-get -qq update - - sudo apt-get install -y binutils-dev libunwind8-dev + - sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev script: - - cargo build --verbose - - cargo test --verbose - - if [ "$(rustup show | grep default | grep 1.29.2)" != "" ]; then cd fuzz && cargo test --verbose && ./travis-fuzz.sh; fi + # Support lightning-net-tokio only on Rust stable, beta, and 1.39.0 + - if [ "$(rustup show | grep default | grep '1.39.0')" != "" ]; then export BUILD_NET_TOKIO=1; fi + - if [ "$(rustup show | grep default | grep '1\.')" == "" ]; then export BUILD_NET_TOKIO=1; fi + # Build the appropriate workspace(s) + - if [ "$BUILD_NET_TOKIO" == "1" ]; then RUSTFLAGS="-C link-dead-code" cargo build --verbose; fi + - if [ "$BUILD_NET_TOKIO" != "1" ]; then RUSTFLAGS="-C link-dead-code" cargo build --verbose -p lightning; fi + - rm -f target/debug/lightning-* # Make sure we drop old test binaries + # Test the appropriate workspace(s) + - if [ "$BUILD_NET_TOKIO" == "1" ]; then RUSTFLAGS="-C link-dead-code" cargo test --verbose; fi + - if [ "$BUILD_NET_TOKIO" != "1" ]; then RUSTFLAGS="-C link-dead-code" cargo test --verbose -p lightning; fi + # Run lightning workspace fuzz tests on Rust stable + - if [ "$(rustup show | grep default | grep stable)" != "" ]; then cd fuzz && cargo test --verbose && ./ci-fuzz.sh; fi + # Generate code cov information on Rust 1.39.0 + - if [ "$(rustup show | grep default | grep 1.39.0)" != "" ]; then + wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz && + tar xzf master.tar.gz && + cd kcov-master && + mkdir build && + cd build && + cmake .. && + make && + make install DESTDIR=../../kcov-build && + cd ../.. && + rm -rf kcov-master && + for file in target/debug/lightning-*; do [ -x "${file}" ] || continue; mkdir -p "target/cov/$(basename $file)"; ./kcov-build/usr/local/bin/kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file"; done && + bash <(curl -s https://codecov.io/bash) && + echo "Uploaded code coverage"; fi