diff --git a/.github/workflows/publish-android.yaml b/.github/workflows/publish-android.yaml new file mode 100644 index 0000000..5a6ba2d --- /dev/null +++ b/.github/workflows/publish-android.yaml @@ -0,0 +1,56 @@ +name: Publish bdk-android to Maven Central +on: [workflow_dispatch] + +env: + ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/21.4.7075529 + # By default the new ubuntu-20.04 images use the following ANDROID_NDK_ROOT + # ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/25.0.8775105 + +jobs: + build: + runs-on: ubuntu-20.04 + steps: + - name: Install Android NDK 21.4.7075529 + run: | + ANDROID_ROOT=/usr/local/lib/android + ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk + SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager + echo "y" | $SDKMANAGER "ndk;21.4.7075529" + + - name: Check out PR branch + uses: actions/checkout@v2 + + - name: Update bdk-ffi git submodule + run: | + git submodule set-url bdk-ffi https://github.com/bitcoindevkit/bdk-ffi.git + git submodule update --init bdk-ffi + + - name: cache + uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + bdk-ffi/target + key: ${{ runner.os }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} + + - name: Set up JDK + uses: actions/setup-java@v2 + with: + distribution: temurin + java-version: 11 + + - name: Install rust android targets + run: rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi + + - name: Build bdk-android library + run: ./gradlew :android:buildAndroidLib + + - name: Publish to Maven Local and Maven Central + env: + ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.PGP_KEY_ID }} + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }} + ORG_GRADLE_PROJECT_ossrhUsername: ${{ secrets.NEXUS_USERNAME }} + ORG_GRADLE_PROJECT_ossrhPassword: ${{ secrets.NEXUS_PASSWORD }} + run: ./gradlew :android:publishToSonatype closeAndReleaseSonatypeStagingRepository diff --git a/.github/workflows/publish-jvm.yaml b/.github/workflows/publish-jvm.yaml index 7d1c269..ac8f82a 100644 --- a/.github/workflows/publish-jvm.yaml +++ b/.github/workflows/publish-jvm.yaml @@ -85,18 +85,11 @@ jobs: name: artifact path: ./jvm/src/main/resources/ - - name: Upload everything in jvm/src/ - uses: actions/upload-artifact@v3 - with: - name: final-src-directory - path: /home/runner/work/bdk-kotlin/bdk-kotlin/jvm/ - - - name: Publish to MavenLocal - run: ./gradlew :jvm:publishToMavenLocal --exclude-task signMavenPublication - - # Copy/paste this artifact in your local Maven repository at ~/.m2/repository/ - - name: Upload library from MavenLocal - uses: actions/upload-artifact@v3 - with: - name: mavenlocal-bdk-jvm-artifact - path: ~/.m2/repository/ + - name: Publish to Maven Central + env: + ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.PGP_KEY_ID }} + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }} + ORG_GRADLE_PROJECT_ossrhUsername: ${{ secrets.NEXUS_USERNAME }} + ORG_GRADLE_PROJECT_ossrhPassword: ${{ secrets.NEXUS_PASSWORD }} + run: ./gradlew :jvm:publishToSonatype closeAndReleaseSonatypeStagingRepository diff --git a/android/Module.md b/android/Module.md deleted file mode 100644 index d21953b..0000000 --- a/android/Module.md +++ /dev/null @@ -1,4 +0,0 @@ -# Module bdk-android -The [bitcoindevkit](https://bitcoindevkit.org/) language bindings library for Android. - -# Package org.bitcoindevkit diff --git a/android/build.gradle.kts b/android/build.gradle.kts index e4a377c..ac55ad9 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -4,9 +4,6 @@ plugins { id("maven-publish") id("signing") - // API docs - id("org.jetbrains.dokka") - // Custom plugin to generate the native libs and bindings file id("org.bitcoindevkit.plugins.generate-android-bindings") } @@ -95,16 +92,11 @@ afterEvaluate { } signing { - useGpgCmd() + // useGpgCmd() + // sign(publishing.publications) + val signingKeyId: String? by project + val signingKey: String? by project + val signingPassword: String? by project + useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) sign(publishing.publications) } - -// tasks.withType().configureEach { -// dokkaSourceSets { -// named("main") { -// moduleName.set("bdk-android") -// moduleVersion.set("0.8.0-SNAPSHOT") -// includes.from("Module.md") -// } -// } -// } diff --git a/build.gradle.kts b/build.gradle.kts index 8583631..5f77266 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,15 +13,15 @@ plugins { id("signing") id("maven-publish") id("io.github.gradle-nexus.publish-plugin") version "1.1.0" - id("org.jetbrains.dokka") version "1.6.10" } -signing { - val signingKey: String? by project - val signingPassword: String? by project - useInMemoryPgpKeys(signingKey, signingPassword) - sign(publishing.publications) -} +// signing { +// val signingKeyId: String? by project +// val signingKey: String? by project +// val signingPassword: String? by project +// useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) +// sign(publishing.publications) +// } // does this need to be defined here? Not sure // it used to be defined in the nexusPublishing block but is not required diff --git a/jvm/Module.md b/jvm/Module.md deleted file mode 100644 index 6873108..0000000 --- a/jvm/Module.md +++ /dev/null @@ -1,4 +0,0 @@ -# Module bdk-jvm -The [bitcoindevkit](https://bitcoindevkit.org/) language bindings library for the JVM. - -# Package org.bitcoindevkit diff --git a/jvm/build.gradle.kts b/jvm/build.gradle.kts index 385fbac..eafe9c9 100644 --- a/jvm/build.gradle.kts +++ b/jvm/build.gradle.kts @@ -7,9 +7,6 @@ plugins { id("maven-publish") id("signing") - // API docs - id("org.jetbrains.dokka") - // Custom plugin to generate the native libs and bindings file id("org.bitcoindevkit.plugins.generate-jvm-bindings") } @@ -93,16 +90,9 @@ afterEvaluate { } signing { - useGpgCmd() + val signingKeyId: String? by project + val signingKey: String? by project + val signingPassword: String? by project + useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) sign(publishing.publications) } - -// tasks.withType().configureEach { -// dokkaSourceSets { -// named("main") { -// moduleName.set("bdk-jvm") -// moduleVersion.set("0.8.0-SNAPSHOT") -// includes.from("Module.md") -// } -// } -// }