Add LDK Node integration test
What changed, and why it matters
This commit adds a new automated CI workflow that checks whether changes in the rust-lightning project break the public API used by a related project called LDK Node. It does not change any application code, cryptographic logic, network handling, or user-facing behavior. It is purely a testing/infrastructure addition.
No security action required. Review the workflow for ordinary CI hygiene (self-hosted runner security, dependency on rustup installer, repository permissions) as part of normal DevOps maintenance.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit introduces .github/workflows/ldk-node-integration.yml, a GitHub Actions workflow triggered on push and pull_request. It runs on a self-hosted runner, checks out rust-lightning and ldk-node, patches ldk-node’s Cargo.toml to use local paths for all lightning* crates, and runs cargo check and cargo check –features uniffi. There are no source-code modifications to the library itself.
Changed components
.github/workflows/ldk-node-integration.ymlInspect captured patch +44 / −0
diff --git a/.github/workflows/ldk-node-integration.yml b/.github/workflows/ldk-node-integration.yml
new file mode 100644
index 0000000..136a60b
--- /dev/null
+++ b/.github/workflows/ldk-node-integration.yml
@@ -0,0 +1,44 @@
+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: Checkout LDK Node
+ uses: actions/checkout@v3
+ with:
+ repository: lightningdevkit/ldk-node
+ 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" }
+ EOF
+ cargo check
+ cargo check --features uniffi
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.