Skip to content

Commit 9629082

Browse files
committed
Split Java CI runs into tests and binary determinism checks
1 parent b0401a9 commit 9629082

File tree

1 file changed

+43
-6
lines changed

1 file changed

+43
-6
lines changed

.github/workflows/build.yml

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,6 @@ jobs:
105105
- name: Rebuild C bindings, and check the sample app builds + links
106106
run: |
107107
cd ldk-c-bindings
108-
# Reset the Cargo.toml file so that git describe doesn't think we're "-dirty"
109-
git checkout lightning-c-bindings/Cargo.toml
110108
./genbindings.sh ../rust-lightning true
111109
- name: Build Java Debug Bindings
112110
run: ./genbindings.sh ./ldk-c-bindings/ "-I/usr/lib/jvm/java-11-openjdk-amd64/include/ -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux/" true false
@@ -115,6 +113,49 @@ jobs:
115113
mv liblightningjni_debug_Linux-amd64.so liblightningjni.so
116114
export ASAN_OPTIONS=detect_leaks=0
117115
LD_PRELOAD=/usr/lib/llvm-11/lib/clang/11.0.1/lib/linux/libclang_rt.asan-x86_64.so LD_LIBRARY_PATH=. mvn test
116+
- name: Build Java Release Bindings
117+
run: |
118+
./genbindings.sh ./ldk-c-bindings/ "-I/usr/lib/jvm/java-11-openjdk-amd64/include/ -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux/" false false
119+
- name: Check latest headers are in git
120+
run: |
121+
git checkout pom.xml
122+
git diff --exit-code
123+
124+
java_determinism:
125+
runs-on: ubuntu-latest
126+
# Ubuntu's version of rustc uses its own LLVM instead of being a real native package.
127+
# This leaves us with an incompatible LLVM version when linking. Instead, use a real OS.
128+
container: debian:bullseye
129+
strategy:
130+
fail-fast: false
131+
steps:
132+
- name: Install native Rust toolchain, Valgrind, and build utilitis
133+
run: |
134+
apt-get update
135+
apt-get -y dist-upgrade
136+
apt-get -y install cargo valgrind lld git g++ clang openjdk-11-jdk maven faketime zip unzip llvm curl
137+
- name: Checkout source code
138+
uses: actions/checkout@v2
139+
with:
140+
fetch-depth: 0
141+
- name: Install cbindgen
142+
run: cargo install --force cbindgen
143+
- name: Checkout Rust-Lightning and LDK-C-Bindings git
144+
run: |
145+
git config --global user.email "[email protected]"
146+
git config --global user.name "LDK CI"
147+
# Note this is a different endpoint, as we need one non-upstream commit!
148+
git clone https://git.bitcoin.ninja/rust-lightning
149+
cd rust-lightning
150+
git checkout origin/2021-03-java-bindings-base
151+
cd ..
152+
git clone https://github.com/lightningdevkit/ldk-c-bindings
153+
cd ldk-c-bindings
154+
git checkout 0.0.104
155+
- name: Rebuild C bindings, and check the sample app builds + links
156+
run: |
157+
cd ldk-c-bindings
158+
./genbindings.sh ../rust-lightning true
118159
- name: Checkout latest MacOS binaries
119160
run: |
120161
export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)"
@@ -136,10 +177,6 @@ jobs:
136177
./genbindings.sh ./ldk-c-bindings/ "-I/usr/lib/jvm/java-11-openjdk-amd64/include/ -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux/" false false
137178
- name: Build deterministic release jar
138179
run: ./build-release-jar.sh
139-
- name: Check latest headers are in git
140-
run: |
141-
git checkout pom.xml
142-
git diff --exit-code
143180
- name: Check latest library and jars are in bins repo
144181
run: |
145182
export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)"

0 commit comments

Comments
 (0)