From 50d82362f5d944653056cb8cd4571f1ef97df045 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 30 Jul 2021 00:21:32 +0000 Subject: [PATCH] Add CI --- .github/workflows/build.yml | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..6f93f20 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,53 @@ +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 -- 2.39.5