X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=.github%2Fworkflows%2Fbuild.yml;h=20ca306b18dcd7e185a1cc629012a6ce1ec7da4c;hb=refs%2Fheads%2F2021-12-0.0.104-bindings;hp=100fbdfcff6c66814b8c847d737c4a87a8c4ceb8;hpb=7dfa886c67a068a6e417db90c78219a84ad58e02;p=rust-lightning diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 100fbdfc..20ca306b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ jobs: 1.41.0, # 1.45.2 is MSRV for lightning-net-tokio, lightning-block-sync, and coverage generation 1.45.2, - # 1.47.0 will be the MSRV for no_std builds using hashbrown once core2 is updated + # 1.47.0 will be the MSRV for no-std builds using hashbrown once core2 is updated 1.47.0] include: - toolchain: stable @@ -26,23 +26,33 @@ jobs: platform: macos-latest build-net-tokio: true build-no-std: true + - toolchain: beta + platform: macos-latest + build-net-tokio: true + build-no-std: true - toolchain: stable platform: windows-latest build-net-tokio: true build-no-std: true + - toolchain: beta + platform: windows-latest + build-net-tokio: true + build-no-std: true - toolchain: beta build-net-tokio: true build-no-std: true - toolchain: 1.36.0 build-no-std: false + test-log-variants: true - toolchain: 1.41.0 build-no-std: false - toolchain: 1.45.2 + build-net-old-tokio: true build-net-tokio: true build-no-std: false coverage: true - toolchain: 1.47.0 - build-no-std: false + build-no-std: true runs-on: ${{ matrix.platform }} steps: - name: Checkout source code @@ -53,6 +63,9 @@ jobs: toolchain: ${{ matrix.toolchain }} override: true profile: minimal + - name: Pin tokio to 1.14 for Rust 1.45 + if: "matrix.build-net-old-tokio" + run: cargo update -p tokio --precise "1.14.0" --verbose - name: Build on Rust ${{ matrix.toolchain }} with net-tokio if: "matrix.build-net-tokio && !matrix.coverage" run: cargo build --verbose --color always @@ -65,6 +78,13 @@ jobs: cargo build --verbose --color always -p lightning cargo build --verbose --color always -p lightning-invoice cargo build --verbose --color always -p lightning-persister + - 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.build-net-tokio && !matrix.coverage" run: | @@ -87,19 +107,19 @@ jobs: - name: Test on Rust ${{ matrix.toolchain }} with net-tokio and full code-linking for coverage generation if: matrix.coverage run: RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always - - name: Test on no_std bullds Rust ${{ matrix.toolchain }} + - name: Test on no-std bullds Rust ${{ matrix.toolchain }} if: "matrix.build-no-std && !matrix.coverage" run: | cd lightning - cargo test --verbose --color always --no-default-features --features no_std - # check if there is a conflict between no_std and the default std feature - cargo test --verbose --color always --features no_std + cargo test --verbose --color always --no-default-features --features no-std + # check if there is a conflict between no-std and the default std feature + cargo test --verbose --color always --features no-std cd .. - - name: Test on no_std bullds Rust ${{ matrix.toolchain }} and full code-linking for coverage generation + - name: Test on no-std builds Rust ${{ matrix.toolchain }} and full code-linking for coverage generation if: "matrix.build-no-std && matrix.coverage" run: | cd lightning - RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --no-default-features --features no_std + RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --no-default-features --features no-std cd .. - name: Test on Rust ${{ matrix.toolchain }} if: "! matrix.build-net-tokio" @@ -107,6 +127,14 @@ jobs: cargo test --verbose --color always -p lightning cargo test --verbose --color always -p lightning-invoice cargo build --verbose --color always -p lightning-persister + cargo build --verbose --color always -p lightning-background-processor + - name: Test C Bindings Modifications on Rust ${{ matrix.toolchain }} + if: "! matrix.build-net-tokio" + run: | + RUSTFLAGS="--cfg=c_bindings" cargo test --verbose --color always -p lightning + RUSTFLAGS="--cfg=c_bindings" cargo test --verbose --color always -p lightning-invoice + RUSTFLAGS="--cfg=c_bindings" cargo build --verbose --color always -p lightning-persister + RUSTFLAGS="--cfg=c_bindings" cargo build --verbose --color always -p lightning-background-processor - name: Test Block Sync Clients on Rust ${{ matrix.toolchain }} with features if: "matrix.build-net-tokio && !matrix.coverage" run: | @@ -148,7 +176,7 @@ jobs: done - name: Upload coverage if: matrix.coverage - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v2 with: # Could you use this to fake the coverage report for your PR? Sure. # Will anyone be impressed by your amazing coverage? No @@ -247,7 +275,7 @@ jobs: linting: runs-on: ubuntu-latest env: - TOOLCHAIN: 1.45.2 + TOOLCHAIN: 1.47.0 steps: - name: Checkout source code uses: actions/checkout@v2