- uses: actions-rs/toolchain@v1
- with:
- toolchain: ${{ matrix.toolchain }}
- override: true
- profile: minimal
- - name: Pin tokio to 1.14 for Rust 1.45
- run: cargo update -p tokio --precise "1.14.0" --verbose
- env:
- CARGO_NET_GIT_FETCH_WITH_CLI: "true"
- - name: Pin tokio to 1.26 for Windows
- if: "matrix.platform == 'windows-latest'"
- run: cargo update -p tokio --precise "1.26.0" --verbose
- env:
- CARGO_NET_GIT_FETCH_WITH_CLI: "true"
- - name: Build on Rust ${{ matrix.toolchain }} with net-tokio
- if: "!matrix.coverage"
- run: cargo build --verbose --color always
- - name: Build on Rust ${{ matrix.toolchain }} with net-tokio, and full code-linking for coverage generation
- if: matrix.coverage
- run: RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always
- - name: Build on Rust ${{ matrix.toolchain }} with all Log-Limiting features
- if: matrix.test-log-variants
- run: |
- cd lightning
- for FEATURE in $(cat Cargo.toml | grep '^max_level_' | awk '{ print $1 }'); do
- cargo build --verbose --color always --features $FEATURE
- done
- - name: Build Block Sync Clients on Rust ${{ matrix.toolchain }} with features
- if: "!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
- - 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
- - name: Build Transaction Sync Clients on Rust ${{ matrix.toolchain }} with features
- if: "matrix.build-tx-sync && !matrix.coverage"
- run: |
- cd lightning-transaction-sync
- cargo build --verbose --color always --features esplora-blocking
- cargo build --verbose --color always --features esplora-async
- cargo build --verbose --color always --features esplora-async-https
- - name: Build transaction sync clients on Rust ${{ matrix.toolchain }} with features and full code-linking for coverage generation
- if: "matrix.build-tx-sync && matrix.coverage"
- run: |
- cd lightning-transaction-sync
- RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features esplora-blocking
- RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features esplora-async
- RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features esplora-async-https
- - name: Test transaction sync clients on Rust ${{ matrix.toolchain }} with features
- if: "matrix.build-tx-sync"