Skip to content

Commit

Permalink
chore: use shell scripts to build bdk-jvm
Browse files Browse the repository at this point in the history
  • Loading branch information
thunderbiscuit committed Sep 27, 2024
1 parent 87fd113 commit f2b3ec8
Show file tree
Hide file tree
Showing 16 changed files with 100 additions and 253 deletions.
8 changes: 2 additions & 6 deletions .github/workflows/live-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,10 @@ jobs:
- name: "Set default Rust version to 1.77.1"
run: rustup default 1.77.1

- name: "Build bdk-jvm library"
run: |
cd bdk-jvm
./gradlew buildJvmLib
- name: "Run live JVM tests"
- name: "Build library and run tests"
run: |
cd bdk-jvm
bash ./scripts/build-linux-x86_64.sh
./gradlew test
swift-tests:
Expand Down
22 changes: 4 additions & 18 deletions .github/workflows/publish-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,11 @@ jobs:
distribution: temurin
java-version: 17

- name: "Set default Rust version to 1.77.1"
run: rustup default 1.77.1

- name: "Install aarch64 Rust target"
run: rustup target add aarch64-apple-darwin

- name: "Build bdk-jvm library"
run: |
cd bdk-jvm
./gradlew buildJvmLib
bash ./scripts/build-macos-aarch64.sh
bash ./scripts/build-macos-x86_64.sh
- name: "Upload macOS native libraries for reuse in publishing job"
uses: actions/upload-artifact@v3
Expand All @@ -54,16 +49,10 @@ jobs:
distribution: temurin
java-version: 17

- name: "Set default Rust version to 1.77.1"
run: rustup default 1.77.1

- name: "Install x86_64-pc-windows-msvc Rust target"
run: rustup target add x86_64-pc-windows-msvc

- name: "Build bdk-jvm library"
run: |
cd bdk-jvm
./gradlew buildJvmLib
bash ./scripts/build-windows-x86_64.sh
- name: "Upload Windows native libraries for reuse in publishing job"
uses: actions/upload-artifact@v3
Expand Down Expand Up @@ -94,13 +83,10 @@ jobs:
distribution: temurin
java-version: 17

- name: "Set default Rust version to 1.77.1"
run: rustup default 1.77.1

- name: "Build bdk-jvm library"
run: |
cd bdk-jvm
./gradlew buildJvmLib
bash ./scripts/build-linux-x86_64.sh
- name: "Download macOS native binaries from previous job"
uses: actions/download-artifact@v3
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/test-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,8 @@ jobs:
distribution: temurin
java-version: 17

- name: "Set default Rust version to 1.77.1"
run: rustup default 1.77.1

- name: "Run JVM tests"
run: |
cd bdk-jvm
bash ./scripts/build-linux-x86_64.sh
./gradlew test -P excludeConnectedTests
1 change: 0 additions & 1 deletion bdk-jvm/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ plugins {
id("org.gradle.java-library")
id("org.gradle.maven-publish")
id("org.gradle.signing")
id("org.bitcoindevkit.plugins.generate-jvm-bindings").apply(false)
id("io.github.gradle-nexus.publish-plugin") version "1.1.0"
}

Expand Down
14 changes: 11 additions & 3 deletions bdk-jvm/justfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
default:
just --list

build:
./gradlew buildJvmLib
build-linux:
bash ./scripts/build-linux-x86_64.sh

build-macos-aarch64:
bash ./scripts/build-macos-aarch64.sh

build-macos-x86_64:
bash ./scripts/build-macos-x86_64.sh

build-windows:
bash ./scripts/build-windows-x86_64.sh

clean:
rm -rf ../bdk-ffi/target/
rm -rf ./build/
rm -rf ./lib/build/
rm -rf ./plugins/build/

publish-local:
./gradlew publishToMavenLocal -P localBuild
Expand Down
19 changes: 6 additions & 13 deletions bdk-jvm/lib/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ plugins {
id("org.gradle.java-library")
id("org.gradle.maven-publish")
id("org.gradle.signing")

// Custom plugin to generate the native libs and bindings file
id("org.bitcoindevkit.plugins.generate-jvm-bindings")
}

java {
Expand All @@ -22,6 +19,12 @@ java {
withJavadocJar()
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
jvmTarget = "11"
}
}

// This block ensures that the tests that require access to a blockchain are not
// run if the -P excludeConnectedTests flag is passed to gradle.
// This ensures our CI runs are not fickle by not requiring access to testnet or signet.
Expand Down Expand Up @@ -120,13 +123,3 @@ signing {
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign(publishing.publications)
}

// This task dependency ensures that we build the bindings
// binaries before running the tests
tasks.withType<KotlinCompile> {
dependsOn("buildJvmLib")

kotlinOptions {
jvmTarget = "11"
}
}
16 changes: 0 additions & 16 deletions bdk-jvm/plugins/README.md

This file was deleted.

13 changes: 0 additions & 13 deletions bdk-jvm/plugins/build.gradle.kts

This file was deleted.

8 changes: 0 additions & 8 deletions bdk-jvm/plugins/settings.gradle.kts

This file was deleted.

16 changes: 0 additions & 16 deletions bdk-jvm/plugins/src/main/kotlin/org/bitcoindevkit/plugins/Enums.kt

This file was deleted.

This file was deleted.

21 changes: 21 additions & 0 deletions bdk-jvm/scripts/build-linux-x86_64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

COMPILATION_TARGET="x86_64-unknown-linux-gnu"
TARGET_DIR="target/x86_64-unknown-linux-gnu/release-smaller"
RESOURCE_DIR="resources/linux-x86-64"
LIB_NAME="libbdkffi.so"

# Move to the Rust library directory
cd ../bdk-ffi/ || exit

# Build the Rust library
rustup default 1.77.1
rustup target add $COMPILATION_TARGET
cargo build --profile release-smaller --target $COMPILATION_TARGET

# Generate Kotlin bindings using uniffi-bindgen
cargo run --bin uniffi-bindgen generate --library ./$TARGET_DIR/$LIB_NAME --language kotlin --out-dir ../bdk-jvm/lib/src/main/kotlin/ --no-format

# Copy the binary to the resources directory
mkdir -p ../bdk-jvm/lib/src/main/$RESOURCE_DIR/
cp ./$TARGET_DIR/$LIB_NAME ../bdk-jvm/lib/src/main/$RESOURCE_DIR/
Loading

0 comments on commit f2b3ec8

Please sign in to comment.