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]
+ # 1.45.2 is MSRV for lightning-net-tokio, lightning-block-sync, and coverage generation
+ 1.45.2]
include:
- toolchain: stable
build-net-tokio: true
build-net-tokio: true
- toolchain: beta
build-net-tokio: true
- - toolchain: 1.39.0
+ - toolchain: 1.45.2
build-net-tokio: true
coverage: true
runs-on: ${{ matrix.platform }}
- name: Build on Rust ${{ matrix.toolchain }}
if: "! matrix.build-net-tokio"
run: cargo build --verbose --color always -p lightning
+ - name: Build Block Sync Clients on Rust ${{ matrix.toolchain }} with features
+ if: "matrix.build-net-tokio && !matrix.coverage"
+ run: |
+ cd lightning-block-sync
+ cargo build --verbose --color always --features rest-client
+ cargo build --verbose --color always --features rpc-client
+ cargo build --verbose --color always --features rpc-client,rest-client
+ cargo build --verbose --color always --features rpc-client,rest-client,tokio
+ cd ..
+ - name: Build Block Sync Clients on Rust ${{ matrix.toolchain }} with features and full code-linking for coverage generation
+ if: matrix.coverage
+ run: |
+ cd lightning-block-sync
+ RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rest-client
+ RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client
+ RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client,rest-client
+ RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client,rest-client,tokio
+ cd ..
- name: Test on Rust ${{ matrix.toolchain }} with net-tokio
if: "matrix.build-net-tokio && !matrix.coverage"
run: cargo test --verbose --color always
- name: Test on Rust ${{ matrix.toolchain }}
if: "! matrix.build-net-tokio"
run: cargo test --verbose --color always -p lightning
+ - name: Test Block Sync Clients on Rust ${{ matrix.toolchain }} with features
+ if: "matrix.build-net-tokio && !matrix.coverage"
+ run: |
+ cd lightning-block-sync
+ cargo test --verbose --color always --features rest-client
+ cargo test --verbose --color always --features rpc-client
+ cargo test --verbose --color always --features rpc-client,rest-client
+ cargo test --verbose --color always --features rpc-client,rest-client,tokio
+ cd ..
+ - name: Test Block Sync Clients on Rust ${{ matrix.toolchain }} with features and full code-linking for coverage generation
+ if: matrix.coverage
+ run: |
+ cd lightning-block-sync
+ RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rest-client
+ RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client
+ RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client,rest-client
+ RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client,rest-client,tokio
+ cd ..
- name: Install deps for kcov
if: matrix.coverage
run: |
- name: Generate coverage report
if: matrix.coverage
run: |
- for file in target/debug/lightning-*; do
+ for file in target/debug/deps/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";
linting:
runs-on: ubuntu-latest
env:
- TOOLCHAIN: 1.39.0
+ TOOLCHAIN: 1.45.2
steps:
- name: Checkout source code
uses: actions/checkout@v2