Skip to content

Commit 0935d67

Browse files
committed
Add CI run for bindings generation (though we'll allow it to fail)
1 parent d35cf39 commit 0935d67

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

.github/workflows/build.yml

+38
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,16 @@ jobs:
1717
include:
1818
- toolchain: stable
1919
build-net-tokio: true
20+
build-bindings: true
2021
- toolchain: beta
2122
build-net-tokio: true
23+
build-bindings: true
2224
- toolchain: 1.39.0
2325
build-net-tokio: true
26+
build-bindings: true
2427
coverage: true
28+
- toolchain: 1.34.2
29+
build-bindings: true
2530
runs-on: ubuntu-latest
2631
steps:
2732
- name: Checkout source code
@@ -38,6 +43,9 @@ jobs:
3843
- name: Build on Rust ${{ matrix.toolchain }}
3944
if: "! matrix.build-net-tokio"
4045
run: RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always -p lightning
46+
- name: Build bindings on Rust ${{ matrix.toolchain }}
47+
if: matrix.build-bindings
48+
run: RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always -p lightning-c-bindings
4149
- name: Test on Rust ${{ matrix.toolchain }} with net-tokio
4250
if: matrix.build-net-tokio
4351
run: RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always
@@ -94,3 +102,33 @@ jobs:
94102
run: cd fuzz && cargo test --verbose --color always
95103
- name: Run fuzzers
96104
run: cd fuzz && ./ci-fuzz.sh
105+
106+
check_bindings:
107+
runs-on: ubuntu-latest
108+
env:
109+
TOOLCHAIN: stable
110+
steps:
111+
- name: Checkout source code
112+
uses: actions/checkout@v2
113+
- name: Install Rust ${{ env.TOOLCHAIN }} toolchain
114+
uses: actions-rs/toolchain@v1
115+
with:
116+
toolchain: ${{ env.TOOLCHAIN }}
117+
override: true
118+
profile: minimal
119+
- name: Install cbindgen
120+
run: cargo install --force cbindgen
121+
- name: Rebuild bindings, and check the sample app builds + links
122+
run: ./genbindings.sh
123+
- name: Check that the latest bindings are in git
124+
run: |
125+
if [ "$(git diff)" != "" ]; then
126+
git diff
127+
# cbindgen's bindings output order can be FS-dependant, so check that the lines are all the same:
128+
mv lightning-c-bindings/include/lightning.h lightning-c-bindings/include/lightning.h.new
129+
git checkout lightning-c-bindings/include/lightning.h
130+
cat lightning-c-bindings/include/lightning.h | sort > lightning-c-bindings/include/lightning.h.sorted
131+
cat lightning-c-bindings/include/lightning.h.new | sort > lightning-c-bindings/include/lightning.h.new.sorted
132+
[ "$(diff lightning-c-bindings/include/lightning.h.sorted lightning-c-bindings/include/lightning.h.new.sorted)" != "" ] && exit 2
133+
[ "$(git diff)" != "" ] && exit 1
134+
fi

0 commit comments

Comments
 (0)