beta,
# 1.41.1 is MSRV for Rust-Lightning, lightning-invoice, and lightning-persister
1.41.1,
- # 1.45.2 is MSRV for lightning-net-tokio, lightning-block-sync, and coverage generation
+ # 1.45.2 is MSRV for lightning-net-tokio, lightning-block-sync, lightning-background-processor, 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]
- toolchain: stable
build-net-tokio: true
build-no-std: true
+ build-futures: true
- toolchain: stable
platform: macos-latest
build-net-tokio: true
build-no-std: true
+ build-futures: true
- toolchain: beta
platform: macos-latest
build-net-tokio: true
build-no-std: true
+ build-futures: true
- toolchain: stable
platform: windows-latest
build-net-tokio: true
build-no-std: true
+ build-futures: true
- toolchain: beta
platform: windows-latest
build-net-tokio: true
build-no-std: true
+ build-futures: true
- toolchain: beta
build-net-tokio: true
build-no-std: true
+ build-futures: true
- toolchain: 1.41.1
build-no-std: false
test-log-variants: true
+ build-futures: false
- toolchain: 1.45.2
build-net-old-tokio: true
build-net-tokio: true
build-no-std: false
+ build-futures: true
coverage: true
- toolchain: 1.47.0
+ build-futures: true
build-no-std: true
runs-on: ${{ matrix.platform }}
steps:
run: cargo update -p tokio --precise "1.14.0" --verbose
env:
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
- - name: Build on Rust ${{ matrix.toolchain }} with net-tokio
- if: "matrix.build-net-tokio && !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 }}
- if: "! matrix.build-net-tokio"
- run: |
- 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: |
- 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 on Rust ${{ matrix.toolchain }} with net-tokio
+ # if: "matrix.build-net-tokio && !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 }}
+ # if: "! matrix.build-net-tokio"
+ # run: |
+ # 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: |
+ # 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: Test backtrace-debug builds on Rust ${{ matrix.toolchain }}
- if: "matrix.build-no-std"
+ if: "matrix.toolchain == 'stable'"
run: |
- cd lightning && cargo test --verbose --color always --features backtrace
+ export RUSTC_BACKTRACE=1 && cd lightning && cargo test --verbose --color always --features backtrace
- 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 }} 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 no-std builds on Rust ${{ matrix.toolchain }}
if: "matrix.build-no-std && !matrix.coverage"
shell: bash # Default on Winblows is powershell
run: |
# check no-std compatibility across dependencies
cd no-std-check
cargo check --verbose --color always
- cd ..
+ - name: Build no-std-check on Rust ${{ matrix.toolchain }} for ARM Embedded
+ if: "matrix.build-no-std && matrix.platform == 'ubuntu-latest'"
+ run: |
+ cd no-std-check
+ rustup target add thumbv7m-none-eabi
+ sudo apt-get -y install gcc-arm-none-eabi
+ cargo build --target=thumbv7m-none-eabi
- 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
- cd ..
+ - name: Test futures builds on Rust ${{ matrix.toolchain }}
+ if: "matrix.build-futures && !matrix.coverage"
+ shell: bash # Default on Winblows is powershell
+ run: |
+ cd lightning-background-processor
+ cargo test --verbose --color always --no-default-features --features futures
+ - name: Test futures builds on Rust ${{ matrix.toolchain }} and full code-linking for coverage generation
+ if: "matrix.build-futures && matrix.coverage"
+ shell: bash # Default on Winblows is powershell
+ run: |
+ cd lightning-background-processor
+ RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --no-default-features --features futures
- name: Test on Rust ${{ matrix.toolchain }}
if: "! matrix.build-net-tokio"
run: |
- cargo test --verbose --color always -p lightning
- cargo test --verbose --color always -p lightning-invoice
- cargo test --verbose --color always -p lightning-rapid-gossip-sync
- cargo build --verbose --color always -p lightning-persister
- cargo build --verbose --color always -p lightning-background-processor
+ cargo test --verbose --color always -p lightning
+ cargo test --verbose --color always -p lightning-invoice
+ cargo test --verbose --color always -p lightning-rapid-gossip-sync
+ cargo test --verbose --color always -p lightning-persister
+ cargo test --verbose --color always -p lightning-background-processor
- name: Test C Bindings Modifications on Rust ${{ matrix.toolchain }}
if: "! matrix.build-net-tokio"
run: |
benchmark:
runs-on: ubuntu-latest
env:
- TOOLCHAIN: nightly
+ TOOLCHAIN: stable
steps:
- name: Checkout source code
uses: actions/checkout@v3
cd ..
- name: Run benchmarks on Rust ${{ matrix.toolchain }}
run: |
- cargo bench --features _bench_unstable
+ RUSTC_BOOTSTRAP=1 cargo bench --features _bench_unstable
check_commits:
runs-on: ubuntu-latest
run: |
cargo check --release
cargo check --no-default-features --features=no-std --release
+ cargo check --no-default-features --features=futures --release
cargo doc --release
fuzz: