Skip to content

CI: Allow ldk-node integration test to target a custom fork/branch #1031

CI: Allow ldk-node integration test to target a custom fork/branch

CI: Allow ldk-node integration test to target a custom fork/branch #1031

name: LDK Node Integration Tests
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check-api:
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: rust-lightning
- name: Determine LDK Node repo and branch
id: ldk-node-ref
if: github.event_name == 'pull_request'
env:
PR_BODY: ${{ github.event.pull_request.body }}
run: |
LDK_NODE_REF=$(echo "$PR_BODY" | sed -n 's/^[[:space:]]*ldk-node:[[:space:]]*//p' | tr -d '[:space:]')
if [ -n "$LDK_NODE_REF" ]; then
echo "repo=$(echo "$LDK_NODE_REF" | cut -d'#' -f1)" >> "$GITHUB_OUTPUT"
echo "ref=$(echo "$LDK_NODE_REF" | cut -d'#' -s -f2)" >> "$GITHUB_OUTPUT"
fi
- name: Checkout LDK Node
uses: actions/checkout@v3
with:
repository: ${{ steps.ldk-node-ref.outputs.repo || 'lightningdevkit/ldk-node' }}
ref: ${{ steps.ldk-node-ref.outputs.ref || '' }}
path: ldk-node
- name: Install Rust stable toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain stable
- name: Run LDK Node Integration Tests
run: |
cd ldk-node
cat <<EOF >> Cargo.toml
[patch.crates-io]
lightning = { path = "../rust-lightning/lightning" }
lightning-types = { path = "../rust-lightning/lightning-types" }
lightning-invoice = { path = "../rust-lightning/lightning-invoice" }
lightning-net-tokio = { path = "../rust-lightning/lightning-net-tokio" }
lightning-persister = { path = "../rust-lightning/lightning-persister" }
lightning-background-processor = { path = "../rust-lightning/lightning-background-processor" }
lightning-rapid-gossip-sync = { path = "../rust-lightning/lightning-rapid-gossip-sync" }
lightning-block-sync = { path = "../rust-lightning/lightning-block-sync" }
lightning-transaction-sync = { path = "../rust-lightning/lightning-transaction-sync" }
lightning-liquidity = { path = "../rust-lightning/lightning-liquidity" }
lightning-macros = { path = "../rust-lightning/lightning-macros" }
[patch."https://github.com/lightningdevkit/rust-lightning"]
lightning = { path = "../rust-lightning/lightning" }
lightning-types = { path = "../rust-lightning/lightning-types" }
lightning-invoice = { path = "../rust-lightning/lightning-invoice" }
lightning-net-tokio = { path = "../rust-lightning/lightning-net-tokio" }
lightning-persister = { path = "../rust-lightning/lightning-persister" }
lightning-background-processor = { path = "../rust-lightning/lightning-background-processor" }
lightning-rapid-gossip-sync = { path = "../rust-lightning/lightning-rapid-gossip-sync" }
lightning-block-sync = { path = "../rust-lightning/lightning-block-sync" }
lightning-transaction-sync = { path = "../rust-lightning/lightning-transaction-sync" }
lightning-liquidity = { path = "../rust-lightning/lightning-liquidity" }
lightning-macros = { path = "../rust-lightning/lightning-macros" }
EOF
cargo check
cargo check --features uniffi