From db4ad1a78d93b1fe6f8e64421e08735bcbd21ae4 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Wed, 31 Aug 2022 09:41:52 -0400 Subject: [PATCH 1/8] Sign bdk-jvm artifact in CI --- .github/workflows/publish-jvm.yaml | 12 +++++------- build.gradle.kts | 13 +++++++------ jvm/build.gradle.kts | 5 ++++- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/.github/workflows/publish-jvm.yaml b/.github/workflows/publish-jvm.yaml index 7d1c269..5d14c1f 100644 --- a/.github/workflows/publish-jvm.yaml +++ b/.github/workflows/publish-jvm.yaml @@ -85,14 +85,12 @@ 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 + env: + ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.PGP_KEY_ID }} + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }} + run: ./gradlew :jvm:publishToMavenLocal # Copy/paste this artifact in your local Maven repository at ~/.m2/repository/ - name: Upload library from MavenLocal diff --git a/build.gradle.kts b/build.gradle.kts index 8583631..af94fa1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,12 +16,13 @@ plugins { 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/build.gradle.kts b/jvm/build.gradle.kts index 385fbac..effe260 100644 --- a/jvm/build.gradle.kts +++ b/jvm/build.gradle.kts @@ -93,7 +93,10 @@ 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) } From 8b042ef47018f42f4bff8872a22a8e7f39314ef7 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Wed, 31 Aug 2022 14:54:41 -0400 Subject: [PATCH 2/8] Fix bdk-android gradle script signing block --- android/build.gradle.kts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index e4a377c..9b80a2c 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -95,7 +95,12 @@ 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) } From a0adc8fc747c44f707ea1f05bf90189107593e71 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Wed, 31 Aug 2022 14:56:03 -0400 Subject: [PATCH 3/8] Remove unused Dokka blocks and imports --- android/build.gradle.kts | 13 ------------- build.gradle.kts | 1 - jvm/build.gradle.kts | 13 ------------- 3 files changed, 27 deletions(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 9b80a2c..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") } @@ -103,13 +100,3 @@ signing { 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 af94fa1..5f77266 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,6 @@ 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 { diff --git a/jvm/build.gradle.kts b/jvm/build.gradle.kts index effe260..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") } @@ -99,13 +96,3 @@ signing { 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") -// } -// } -// } From 7e25684399c6b7c5f3c5bda49a66cf39cc830e9f Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Wed, 31 Aug 2022 15:05:11 -0400 Subject: [PATCH 4/8] Add publish to staging repository task --- .github/workflows/publish-jvm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-jvm.yaml b/.github/workflows/publish-jvm.yaml index 5d14c1f..6d05766 100644 --- a/.github/workflows/publish-jvm.yaml +++ b/.github/workflows/publish-jvm.yaml @@ -90,7 +90,7 @@ jobs: ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.PGP_KEY_ID }} ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET_KEY }} ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }} - run: ./gradlew :jvm:publishToMavenLocal + run: ./gradlew :jvm:publishToMavenLocal :jvm:publishToSonatype # Copy/paste this artifact in your local Maven repository at ~/.m2/repository/ - name: Upload library from MavenLocal From fc288bc92bf05020042d31dbe0a817afcf740dae Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Wed, 31 Aug 2022 15:15:48 -0400 Subject: [PATCH 5/8] Add bdk-android publishing workflow --- .github/workflows/publish-android.yaml | 61 ++++++++++++++++++++++++++ .github/workflows/publish-jvm.yaml | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish-android.yaml diff --git a/.github/workflows/publish-android.yaml b/.github/workflows/publish-android.yaml new file mode 100644 index 0000000..87a04bb --- /dev/null +++ b/.github/workflows/publish-android.yaml @@ -0,0 +1,61 @@ +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 }} + run: ./gradlew :android:publishToMavenLocal :android:publishToSonatype + + # 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-android-artifact + path: ~/.m2/repository/ \ No newline at end of file diff --git a/.github/workflows/publish-jvm.yaml b/.github/workflows/publish-jvm.yaml index 6d05766..0aeb985 100644 --- a/.github/workflows/publish-jvm.yaml +++ b/.github/workflows/publish-jvm.yaml @@ -85,7 +85,7 @@ jobs: name: artifact path: ./jvm/src/main/resources/ - - name: Publish to MavenLocal + - 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 }} From b259d376b03f8937e7c0d0e4b7094eb789114838 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Wed, 31 Aug 2022 15:55:43 -0400 Subject: [PATCH 6/8] Pick up Nexus credentials from GitHub secrets --- .github/workflows/publish-android.yaml | 2 ++ .github/workflows/publish-jvm.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/publish-android.yaml b/.github/workflows/publish-android.yaml index 87a04bb..a9014dc 100644 --- a/.github/workflows/publish-android.yaml +++ b/.github/workflows/publish-android.yaml @@ -51,6 +51,8 @@ jobs: 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:publishToMavenLocal :android:publishToSonatype # Copy/paste this artifact in your local Maven repository at ~/.m2/repository/ diff --git a/.github/workflows/publish-jvm.yaml b/.github/workflows/publish-jvm.yaml index 0aeb985..083d4dd 100644 --- a/.github/workflows/publish-jvm.yaml +++ b/.github/workflows/publish-jvm.yaml @@ -90,6 +90,8 @@ jobs: 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:publishToMavenLocal :jvm:publishToSonatype # Copy/paste this artifact in your local Maven repository at ~/.m2/repository/ From 3cd252f877ff6f2b609ec0fac7f346ced4d02631 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Thu, 1 Sep 2022 10:53:35 -0400 Subject: [PATCH 7/8] Remove dokka-related markdown files --- android/Module.md | 4 ---- jvm/Module.md | 4 ---- 2 files changed, 8 deletions(-) delete mode 100644 android/Module.md delete mode 100644 jvm/Module.md 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/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 From 222d1594ca505e1a28154b264a333d7b34c988db Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Thu, 8 Sep 2022 09:15:26 -0400 Subject: [PATCH 8/8] Enable full bdk-jvm and bdk-android publishing workflow --- .github/workflows/publish-android.yaml | 9 +-------- .github/workflows/publish-jvm.yaml | 11 ++--------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/.github/workflows/publish-android.yaml b/.github/workflows/publish-android.yaml index a9014dc..5a6ba2d 100644 --- a/.github/workflows/publish-android.yaml +++ b/.github/workflows/publish-android.yaml @@ -53,11 +53,4 @@ jobs: ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }} ORG_GRADLE_PROJECT_ossrhUsername: ${{ secrets.NEXUS_USERNAME }} ORG_GRADLE_PROJECT_ossrhPassword: ${{ secrets.NEXUS_PASSWORD }} - run: ./gradlew :android:publishToMavenLocal :android:publishToSonatype - - # 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-android-artifact - path: ~/.m2/repository/ \ No newline at end of file + run: ./gradlew :android:publishToSonatype closeAndReleaseSonatypeStagingRepository diff --git a/.github/workflows/publish-jvm.yaml b/.github/workflows/publish-jvm.yaml index 083d4dd..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: Publish to Maven Local and Maven Central + - 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:publishToMavenLocal :jvm:publishToSonatype - - # 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/ + run: ./gradlew :jvm:publishToSonatype closeAndReleaseSonatypeStagingRepository