ldk-node 0.6.2

A ready-to-go node implementation built using LDK.
Documentation
name: Publish ldk-node-jvm to Maven Central
on: [workflow_dispatch]

jobs:
  build-jvm-macOS-M1-native-lib:
    name: "Create M1 and x86_64 JVM native binaries"
    runs-on: macos-12
    steps:
      - name: "Checkout publishing branch"
        uses: actions/checkout@v2

      - name: Cache
        uses: actions/cache@v3
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            ./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 aarch64 Rust target
        run: rustup target add aarch64-apple-darwin

      - name: Build ldk-node-jvm library
        run: |
          ./scripts/uniffi_bindgen_generate_kotlin.sh

      # build aarch64 + x86_64 native libraries and upload
      - name: Upload macOS native libraries for reuse in publishing job
        uses: actions/upload-artifact@v3
        with:
          # name: no name is required because we upload the entire directory
          # the default name "artifact" will be used
          path: /Users/runner/work/ldk-node/ldk-node/bindings/kotlin/ldk-node-jvm/lib/src/main/resources/

  build-jvm-full-library:
    name: "Create full ldk-node-jvm library"
    needs: [build-jvm-macOS-M1-native-lib]
    runs-on: ubuntu-20.04
    steps:
      - name: "Check out PR branch"
        uses: actions/checkout@v2

      - name: "Cache"
        uses: actions/cache@v2
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            ./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: "Build ldk-node-jvm library"
        run: |
          ./scripts/uniffi_bindgen_generate_kotlin.sh

      - name: Download macOS native libraries from previous job
        uses: actions/download-artifact@v4.1.7
        id: download
        with:
          # download the artifact created in the prior job (named "artifact")
          name: artifact
          path: ./bindings/kotlin/ldk-node-jvm/lib/src/main/resources/

      - 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: |
          cd bindings/kotlin/ldk-node-jvm
          ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository