+++ /dev/null
-language: rust
-rust:
- - stable
- - beta
- # 1.30.0 is MSRV for rust-lightning in general:
- - 1.30.0
- # 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 libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev
-
-script:
- # 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
- # Run clippy on Rust 1.39.0
- - if [ "$(rustup show | grep default | grep 1.39.0)" != "" ]; then
- rustup component add clippy &&
- cargo clippy -- -Aclippy::erasing_op -Aclippy::never_loop -Aclippy::if_same_then_else; fi
- # 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