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