From 31b0fe27ef0f4fa21f20362ce27977c7b74389de Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Mon, 8 Mar 2021 14:52:54 -0500 Subject: [PATCH] Add GitHub CI tests for bindings against upstream git --- .github/workflows/build.yml | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 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..9511edf --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,43 @@ +name: Continuous Integration Checks + +on: [push, pull_request] + +jobs: + check_bindings: + runs-on: ubuntu-latest + # Ubuntu's version of rustc uses its own LLVM instead of being a real native package. + # This leaves us with an incompatible LLVM version when linking. Instead, use a real OS. + container: debian:bullseye + env: + TOOLCHAIN: stable + steps: + - name: Install native Rust toolchain, Valgrind, and build utilitis + run: | + apt-get update + apt-get -y dist-upgrade + apt-get -y install cargo valgrind lld git g++ clang + - name: Checkout source code + uses: actions/checkout@v2 + - name: Sanity test bindings against Cargo.toml RL + working-directory: lightning-c-bindings + run: cargo check + - name: Install cbindgen + run: cargo install --force cbindgen + - name: Checkout Rust-Lightning git + run: git clone https://github.com/rust-bitcoin/rust-lightning + - name: Rebuild bindings, and check the sample app builds + links + run: ./genbindings.sh ./rust-lightning + - name: Check that the latest bindings are in git + run: | + git checkout lightning-c-bindings/Cargo.toml # genbindings edits this to update the path + if [ "$(git diff)" != "" ]; then + # cbindgen's bindings output order can be FS-dependant, so check that the lines are all the same: + mv lightning-c-bindings/include/lightning.h lightning-c-bindings/include/lightning.h.new + git checkout lightning-c-bindings/include/lightning.h + cat lightning-c-bindings/include/lightning.h | grep -v "Generated with cbindgen:[0-9\.]*" | sort > lightning-c-bindings/include/lightning.h.sorted + cat lightning-c-bindings/include/lightning.h.new | grep -v "Generated with cbindgen:[0-9\.]*" | sort > lightning-c-bindings/include/lightning.h.new.sorted + diff lightning-c-bindings/include/lightning.h.sorted lightning-c-bindings/include/lightning.h.new.sorted + [ "$(diff lightning-c-bindings/include/lightning.h.sorted lightning-c-bindings/include/lightning.h.new.sorted)" != "" ] && exit 2 + git diff --exit-code + fi + -- 2.30.2