--- /dev/null
+name: Continuous Integration Checks
+
+on: [push, pull_request]
+
+jobs:
+ check_bindings:
+ runs-on: ubuntu-20.04
+ env:
+ TOOLCHAIN: stable
+ steps:
+ - name: Install native Rust toolchain, Valgrind, and build utilitis
+ run: |
+ sudo apt-get update
+ sudo apt-get -y dist-upgrade
+ sudo apt-get -y install cargo valgrind lld git g++ clang curl
+ - name: Checkout source code
+ uses: actions/checkout@v2
+ - name: Install cbindgen
+ run: cargo install --force cbindgen
+ - name: Checkout Rust-Lightning and LDK-C-Bindings git
+ run: |
+ git config --global user.email "ldk-ci@example.com"
+ git config --global user.name "LDK CI"
+ # Note this is a different endpoint, as we need one non-upstream commit!
+ git clone https://git.bitcoin.ninja/rust-lightning
+ cd rust-lightning
+ git checkout origin/2021-03-java-bindings-base
+ cd ..
+ git clone https://github.com/lightningdevkit/ldk-c-bindings
+ - name: Install Swift Toolchain
+ run: |
+ curl https://swift.org/builds/swift-5.4.2-release/ubuntu2004/swift-5.4.2-RELEASE/swift-5.4.2-RELEASE-ubuntu20.04.tar.gz > swift-5.4.2-RELEASE-ubuntu20.04.tar.gz
+ if [ "$(sha256sum swift-5.4.2-RELEASE-ubuntu20.04.tar.gz | awk '{ print $1 }')" != "86b849d9f6ba2eda4e12ea5eafaa0748bffcd6272466b514c2b0fd4a829c63a4" ]; then
+ echo "Bad hash"
+ exit 1
+ fi
+ tar xvvf swift-5.4.2-RELEASE-ubuntu20.04.tar.gz
+ - name: Rebuild C bindings
+ run: |
+ cd ldk-c-bindings
+ ./genbindings.sh ../rust-lightning true
+ cd ..
+ - name: Copy new headers into bindings
+ run: |
+ cp ldk-c-bindings/lightning-c-bindings/include/*.h LDKCHeaders/Headers/
+ cp ldk-c-bindings/ldk-net/ldk_net.h LDKCHeaders/Headers/
+ - name: Build and test bindings
+ run: |
+ cd LDKSwift
+ LDK_C_BINDINGS_BASE="../ldk-c-bindings" RUST_BACKTRACE=1 ../swift-5.4.2-RELEASE-ubuntu20.04/usr/bin/swift test
+ - name: Check that the latest headers are in the swift repo
+ run: |
+ git diff --exit-code