Only run lightning-net-tokio build on Rust 1.39.0+ on Travis.
[rust-lightning] / .travis.yml
1 language: rust
2 rust:
3   - stable
4   - beta
5   # 1.22.0 is MSRV for rust-lightning in general:
6   - 1.22.0
7   # 1.34.2 is Debian stable, and we use it to run fuzzing on:
8   - 1.34.2
9   # 1.39.0 is MSRV for lightning-net-tokio:
10   - 1.39.0
11 cache: cargo
12
13 before_install:
14   - sudo apt-get -qq update
15   - sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev
16
17 script:
18      # Support lightning-net-tokio only on Rust stable, beta, and 1.39.0
19      - if [ "$(rustup show | grep default | grep '1.39.0')" != "" ]; then export BUILD_NET_TOKIO=1; fi
20      - if [ "$(rustup show | grep default | grep '1\.')" == "" ]; then export BUILD_NET_TOKIO=1; fi
21      # Build the appropriate workspace(s)
22      - if [ "$BUILD_NET_TOKIO" == "1" ]; then RUSTFLAGS="-C link-dead-code" cargo build --verbose; fi
23      - if [ "$BUILD_NET_TOKIO" != "1" ]; then RUSTFLAGS="-C link-dead-code" cargo build --verbose -p lightning; fi
24      - rm -f target/debug/lightning-* # Make sure we drop old test binaries
25      # Test the appropriate workspace(s)
26      - if [ "$BUILD_NET_TOKIO" == "1" ]; then RUSTFLAGS="-C link-dead-code" cargo test --verbose; fi
27      - if [ "$BUILD_NET_TOKIO" != "1" ]; then RUSTFLAGS="-C link-dead-code" cargo test --verbose -p lightning; fi
28      # Run lightning workspace fuzz tests for Rust 1.34.2
29      - if [ "$(rustup show | grep default | grep 1.34.2)" != "" ]; then cd fuzz && cargo test --verbose && ./travis-fuzz.sh; fi
30      - if [ "$(rustup show | grep default | grep stable)" != "" ]; then
31            wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
32            tar xzf master.tar.gz &&
33            cd kcov-master &&
34            mkdir build &&
35            cd build &&
36            cmake .. &&
37            make &&
38            make install DESTDIR=../../kcov-build &&
39            cd ../.. &&
40            rm -rf kcov-master &&
41            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 &&
42            bash <(curl -s https://codecov.io/bash) &&
43            echo "Uploaded code coverage"; fi