Merge remote-tracking branch 'kotlinrepo/master' into ffi-merge

This commit is contained in:
thunderbiscuit
2022-11-14 09:45:49 -05:00
59 changed files with 3575 additions and 1 deletions

66
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,66 @@
name: Bug Report
description: Create a report to help us improve
labels: [ "bug", "triage" ]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: description
attributes:
label: Description
description: A concise description of the bug, what happened?
placeholder: What did you see...
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: How to Reproduce
description: Steps or code to reproduce the behavior.
placeholder: How can we reproduce it...
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Result
description: What did you expected to happen.
placeholder: Tell us what you were expecting...
validations:
required: true
- type: textarea
id: version
attributes:
label: Version
description: Which release version(s), commit, or branch of code do you see this bug?
placeholder: Tell us which version(s) of code you saw the bug in...
validations:
required: true
- type: checkboxes
id: artifact
attributes:
label: Artifact
description: With which artifact(s) are you seeing this bug?
options:
- label: bdk-jvm
- label: bdk-android
- type: checkboxes
id: platform
attributes:
label: Platform
description: What target platform(s) are you seeing the problem on?
options:
- label: ARM64 Android
- label: 64-bit x86 Android
- label: 32-bit x86 Android
- label: 64-bit x86 Linux (kernel 2.6.32+, glibc 2.11+)
- label: 64-bit x86 macOS (10.7+, Lion+)
- label: ARM64 macOS (11.0+, Big Sur+)
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: 📝 Official Documentation
url: https://bitcoindevkit.org/getting-started/
about: Check our documentation for answers to common questions
- name: 💬 Community Chat
url: https://discord.com/invite/dstn4dQ
about: Ask general questions and get community support in real-time

View File

@@ -0,0 +1,32 @@
name: Feature Request
description: Request a new feature
labels: [ "enhancement", "triage" ]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to request and document this new feature!
- type: textarea
id: problem
attributes:
label: Problem
description: A concise description of the problem you need this new feature to solve.
placeholder: What is the problem you are trying to solve...
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: A concise description of the new feature you need.
placeholder: What will this new feature do, how will it work...
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives
description: Describe any other alternatives you considered.
placeholder: Other ways you considered to solve your problem...
validations:
required: false

View File

@@ -1,4 +1,4 @@
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
<!-- Erase any parts of this template not applicable to your Pull Request. -->
### Description

60
.github/workflows/publish-android.yaml vendored Normal file
View File

@@ -0,0 +1,60 @@
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: |
cd bdk-android
./gradlew 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: |
cd bdk-android
./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository

101
.github/workflows/publish-jvm.yaml vendored Normal file
View File

@@ -0,0 +1,101 @@
name: Publish bdk-jvm to Maven Central
on: [workflow_dispatch]
#on:
# release:
# types: [published]
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: 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@v3
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 aarch64 Rust target
run: rustup target add aarch64-apple-darwin
- name: Build bdk-jvm library
run: |
cd bdk-jvm
./gradlew buildJvmLib
# 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/bdk-kotlin/bdk-kotlin/bdk-jvm/lib/src/main/resources/
build-jvm-full-library:
name: Create full bdk-jvm library
needs: [build-jvm-macOS-M1-native-lib]
runs-on: ubuntu-22.04
steps:
- name: Checkout publishing 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@v3
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: Build bdk-jvm library
run: |
cd bdk-jvm
./gradlew buildJvmLib
- name: Download macOS native libraries from previous job
uses: actions/download-artifact@v3
id: download
with:
# download the artifact created in the prior job (named "artifact")
name: artifact
path: ./bdk-jvm/lib/src/main/resources/
- 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: |
cd bdk-jvm
./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository

54
.github/workflows/test-android.yaml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: Test Android
on: [push, pull_request]
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: |
cd bdk-android
./gradlew buildAndroidLib
- name: Run Android tests
run: |
cd bdk-android
./gradlew test --console=rich

39
.github/workflows/test-jvm.yaml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Test JVM
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-20.04
steps:
- 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: Build bdk-jvm library
run: |
cd bdk-jvm
./gradlew buildJvmLib
- name: Run JVM tests
run: |
cd bdk-jvm
./gradlew test --console=rich