mirror of
https://github.com/aljazceru/breez-sdk-liquid.git
synced 2025-12-17 05:54:27 +01:00
Publish CI fixes (#289)
* Fix CI publish directories * Fix kotlin multiplatform build * Fix python ffi directory * Add swift PAT to release * Fix file copy * Fix mvn check * Test windows build (#290) * Add jitpack yml * Fix RN example android build
This commit is contained in:
@@ -117,7 +117,7 @@ jobs:
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bindings-python
|
||||
path: lib/bindings/ffi/langs/python/breez_liquid_sdk.py
|
||||
path: lib/bindings/ffi/python/breez_liquid_sdk.py
|
||||
|
||||
# - name: Build C# binding
|
||||
# if: ${{ inputs.csharp }}
|
||||
|
||||
1
.github/workflows/publish-all-platforms.yml
vendored
1
.github/workflows/publish-all-platforms.yml
vendored
@@ -326,4 +326,5 @@ jobs:
|
||||
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
||||
secrets:
|
||||
REPO_SSH_KEY: ${{ secrets.REPO_SSH_KEY }}
|
||||
SWIFT_RELEASE_TOKEN: ${{ secrets.SWIFT_RELEASE_TOKEN }}
|
||||
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
|
||||
|
||||
6
.github/workflows/publish-android.yml
vendored
6
.github/workflows/publish-android.yml
vendored
@@ -53,7 +53,7 @@ jobs:
|
||||
path: lib/bindings/langs/android/lib/src/main/kotlin
|
||||
|
||||
- name: Build Android project
|
||||
working-directory: lib/bindings/android
|
||||
working-directory: lib/bindings/langs/android
|
||||
env:
|
||||
ORG_GRADLE_PROJECT_libraryVersion: ${{ inputs.package-version || '0.0.1' }}
|
||||
run: ./gradlew assemble
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
|
||||
- name: Publish artifacts
|
||||
if: ${{ inputs.publish }}
|
||||
working-directory: lib/bindings/android
|
||||
working-directory: lib/bindings/langs/android
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
BREEZ_MVN_USERNAME: ${{ secrets.BREEZ_MVN_USERNAME }}
|
||||
@@ -84,7 +84,7 @@ jobs:
|
||||
# We're waiting for at most 60s before triggering the Jitpack build to give our Maven repo
|
||||
# some time to process the just uploaded files (the Jitpack build is dependent upon them being available).
|
||||
# If anything fails here, we'll still finish sucessfully as this is an optional optimization.
|
||||
timeout 60 bash -c 'while [[ "$(curl --output /dev/null --silent --head --write-out ''%{http_code}'' https://mvn.breez.technology/releases/breez_liquid_sdk/bindings-android/${{ inputs.package-version }}/android-${{ inputs.package-version }}.pom)" != "200" ]]; do echo "Waiting for package to be published on mvn.breez.technology..." && sleep 5; done && echo "Package found."' || echo "Package not found." && true
|
||||
timeout 60 bash -c 'while [[ "$(curl --output /dev/null --silent --head --write-out ''%{http_code}'' https://mvn.breez.technology/releases/breez_liquid_sdk/bindings-android/${{ inputs.package-version }}/bindings-android-${{ inputs.package-version }}.pom)" != "200" ]]; do echo "Waiting for package to be published on mvn.breez.technology..." && sleep 5; done && echo "Package found."' || echo "Package not found." && true
|
||||
echo "Attempting to trigger Jitpack build..."
|
||||
curl -s -m 30 https://jitpack.io/api/builds/com.github.breez/breez-liquid-sdk/${{ inputs.package-version }} || true
|
||||
echo "Done"
|
||||
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
path: lib/bindings/langs/kotlin-multiplatform/breez-liquid-sdk-kmp/src/lib/ios-simulator-x64
|
||||
|
||||
- name: Build Kotlin Multiplatform project
|
||||
working-directory: lib/bindings/kotlin-multiplatform
|
||||
working-directory: lib/bindings/langs/kotlin-multiplatform
|
||||
env:
|
||||
ORG_GRADLE_PROJECT_libraryVersion: ${{ inputs.package-version || '0.0.1' }}
|
||||
run: ./gradlew :breez-liquid-sdk-kmp:assemble
|
||||
@@ -86,7 +86,7 @@ jobs:
|
||||
|
||||
- name: Publish artifacts
|
||||
if: ${{ inputs.publish }}
|
||||
working-directory: lib/bindings/kotlin-multiplatform
|
||||
working-directory: lib/bindings/langs/kotlin-multiplatform
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
BREEZ_MVN_USERNAME: ${{ secrets.BREEZ_MVN_USERNAME }}
|
||||
|
||||
22
.github/workflows/publish-python.yml
vendored
22
.github/workflows/publish-python.yml
vendored
@@ -55,19 +55,19 @@ jobs:
|
||||
- name: Clean up downloaded files
|
||||
run: |
|
||||
rm -f lib/bindings/langs/python/src/breez_liquid_sdk/*.a
|
||||
ls -R lib/bindings/python
|
||||
ls -R lib/bindings/langs/python
|
||||
|
||||
- name: Update package version
|
||||
if: ${{ inputs.package-version }}
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: sed -i.bak -e 's/ version=".*",/ version="${{ inputs.package-version }}",/' setup.py
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: pip3 install wheel setuptools
|
||||
|
||||
- name: Build wheel
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: python3 setup.py bdist_wheel --plat-name macosx_11_0_universal2 --verbose
|
||||
|
||||
- name: List wheel contents
|
||||
@@ -110,15 +110,15 @@ jobs:
|
||||
|
||||
- name: Update package version
|
||||
if: ${{ inputs.package-version }}
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: sed -i.bak -e 's/ version=".*",/ version="${{ inputs.package-version }}",/' setup.py
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: pip3 install wheel setuptools
|
||||
|
||||
- name: "Build wheel"
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: python3 setup.py bdist_wheel --plat-name manylinux_2_31_${{ matrix.arch }} --verbose
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
@@ -178,15 +178,15 @@ jobs:
|
||||
|
||||
- name: Update package version
|
||||
if: ${{ inputs.package-version }}
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: (Get-Content setup.py) | Foreach-Object {$_ -replace ' version=".*",', (' version="${{ inputs.package-version }}",')} | Set-Content setup.py
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: python -m pip install --upgrade pip twine wheel setuptools
|
||||
|
||||
- name: "Build wheel"
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: python -m setup bdist_wheel --plat-name ${{ matrix.arch }} --verbose
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
@@ -210,7 +210,7 @@ jobs:
|
||||
path: lib/bindings/langs/python/dist/
|
||||
|
||||
- name: Clean downloaded contents
|
||||
working-directory: lib/bindings/python
|
||||
working-directory: lib/bindings/langs/python
|
||||
run: |
|
||||
find dist -maxdepth 1 ! -path dist ! -name "python-wheel-*" -exec rm -rf {} \;
|
||||
ls -laR dist
|
||||
|
||||
33
.github/workflows/publish-swift.yml
vendored
33
.github/workflows/publish-swift.yml
vendored
@@ -23,6 +23,9 @@ on:
|
||||
REPO_SSH_KEY:
|
||||
description: 'ssh key to commit to the breez-liquid-sdk-swift repository'
|
||||
required: true
|
||||
SWIFT_RELEASE_TOKEN:
|
||||
description: 'github token to release to the breez-liquid-sdk-swift repository'
|
||||
required: true
|
||||
COCOAPODS_TRUNK_TOKEN:
|
||||
description: 'cocoapods trunk token'
|
||||
required: true
|
||||
@@ -73,27 +76,25 @@ jobs:
|
||||
- name: Copy swift bindings
|
||||
run: |
|
||||
mkdir -p build/lib/bindings/langs/swift/Sources/BreezLiquidSDK
|
||||
cp langs/swift/BreezLiquidSDK.swift build/lib/bindings/langs/swift/Sources/BreezLiquidSDK/BreezLiquidSDK.swift
|
||||
cp langs/swift/breez_liquid_sdkFFI.h build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/ios-arm64/breez_liquid_sdkFFI.framework/Headers
|
||||
cp langs/swift/breez_liquid_sdkFFI.h build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/ios-arm64_x86_64-simulator/breez_liquid_sdkFFI.framework/Headers
|
||||
cp langs/swift/breez_liquid_sdkFFI.h build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/macos-arm64_x86_64/breez_liquid_sdkFFI.framework/Headers
|
||||
mkdir -p build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/ios-arm64/breez_liquid_sdkFFI.framework/breez_liquid_sdkFFI
|
||||
cp swift/BreezLiquidSDK.swift build/lib/bindings/langs/swift/Sources/BreezLiquidSDK/BreezLiquidSDK.swift
|
||||
cp swift/breez_liquid_sdkFFI.h build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/ios-arm64/breez_liquid_sdkFFI.framework/Headers
|
||||
cp swift/breez_liquid_sdkFFI.h build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/ios-arm64_x86_64-simulator/breez_liquid_sdkFFI.framework/Headers
|
||||
cp swift/breez_liquid_sdkFFI.h build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/macos-arm64_x86_64/breez_liquid_sdkFFI.framework/Headers
|
||||
cp aarch64-apple-ios/libbreez_liquid_sdk_bindings.a build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/ios-arm64/breez_liquid_sdkFFI.framework/breez_liquid_sdkFFI
|
||||
mkdir -p build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/ios-arm64_x86_64-simulator/breez_liquid_sdkFFI.framework/breez_liquid_sdkFFI
|
||||
cp ios-universal-sim/libbreez_liquid_sdk_bindings.a build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/ios-arm64_x86_64-simulator/breez_liquid_sdkFFI.framework/breez_liquid_sdkFFI
|
||||
cp darwin-universal/libbreez_liquid_sdk_bindings.a build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework/macos-arm64_x86_64/breez_liquid_sdkFFI.framework/breez_liquid_sdkFFI
|
||||
|
||||
- name: Compress XCFramework
|
||||
working-directory: build/lib/bindings/swift
|
||||
working-directory: build/lib/bindings/langs/swift
|
||||
run: |
|
||||
zip -9 -r breez_liquid_sdkFFI.xcframework.zip breez_liquid_sdkFFI.xcframework
|
||||
echo "XCF_CHECKSUM=`swift package compute-checksum breez_liquid_sdkFFI.xcframework.zip`" >> $GITHUB_ENV
|
||||
|
||||
- name: Update Swift Package definition
|
||||
working-directory: build/lib/bindings/swift
|
||||
working-directory: build/lib/bindings/langs/swift
|
||||
run: |
|
||||
sed 's#.binaryTarget(name: "breez_liquid_sdkFFI", path: "./breez_liquid_sdkFFI.xcframework"),#.binaryTarget(name: "breez_liquid_sdkFFI", url: "https://github.com/breez/breez-liquid-sdk-langs/swift/releases/download/${{ inputs.package-version || '0.0.1' }}/breez_liquid_sdkFFI.xcframework.zip", checksum: "${{ env.XCF_CHECKSUM }}"),#;/.testTarget(name: "BreezLiquidSDKTests", dependencies: \["BreezLiquidSDK"\]),/d' Package.swift > ../../../../dist/Package.swift
|
||||
cp -r Sources ../../../../dist
|
||||
sed 's#.binaryTarget(name: "breez_liquid_sdkFFI", path: "./breez_liquid_sdkFFI.xcframework"),#.binaryTarget(name: "breez_liquid_sdkFFI", url: "https://github.com/breez/breez-liquid-sdk-langs/swift/releases/download/${{ inputs.package-version || '0.0.1' }}/breez_liquid_sdkFFI.xcframework.zip", checksum: "${{ env.XCF_CHECKSUM }}"),#;/.testTarget(name: "BreezLiquidSDKTests", dependencies: \["BreezLiquidSDK"\]),/d' Package.swift > ../../../../../dist/Package.swift
|
||||
cp -r Sources ../../../../../dist
|
||||
|
||||
- name: Update Cocoapods definitions
|
||||
working-directory: dist
|
||||
@@ -118,12 +119,14 @@ jobs:
|
||||
|
||||
- name: Release and attach XCFramework binary artifact
|
||||
if: ${{ inputs.publish }}
|
||||
uses: ncipollo/release-action@v1
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
artifacts: "build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework.zip"
|
||||
tag: ${{ inputs.package-version || '0.0.1' }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
name: ${{ inputs.package-version || '0.0.1' }}
|
||||
repository: breez/breez-liquid-sdk-swift
|
||||
files: |
|
||||
build/lib/bindings/langs/swift/breez_liquid_sdkFFI.xcframework.zip
|
||||
tag_name: ${{ inputs.package-version || '0.0.1' }}
|
||||
generate_release_notes: false
|
||||
token: ${{ secrets.SWIFT_RELEASE_TOKEN }}
|
||||
prerelease: true
|
||||
|
||||
- name: Push update to Cocoapods trunk
|
||||
|
||||
2
jitpack.yml
Normal file
2
jitpack.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
install:
|
||||
- ./lib/bindings/langs/android/buildForJitpack.sh
|
||||
36
lib/Cargo.lock
generated
36
lib/Cargo.lock
generated
@@ -564,8 +564,8 @@ dependencies = [
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"uniffi 0.27.1",
|
||||
"uniffi-kotlin-multiplatform",
|
||||
"uniffi_bindgen 0.25.3",
|
||||
"uniffi_bindgen_kotlin_multiplatform",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3105,23 +3105,6 @@ dependencies = [
|
||||
"uniffi_macros 0.27.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "uniffi-kotlin-multiplatform"
|
||||
version = "0.1.0"
|
||||
source = "git+https://gitlab.com/trixnity/uniffi-kotlin-multiplatform-bindings?rev=55d51f3abf9819b32bd81756053dcfc10f8d5522#55d51f3abf9819b32bd81756053dcfc10f8d5522"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"askama 0.12.1",
|
||||
"camino",
|
||||
"clap 4.5.4",
|
||||
"heck 0.4.1",
|
||||
"include_dir",
|
||||
"paste",
|
||||
"serde",
|
||||
"toml",
|
||||
"uniffi_bindgen 0.25.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "uniffi_bindgen"
|
||||
version = "0.23.0"
|
||||
@@ -3194,6 +3177,23 @@ dependencies = [
|
||||
"uniffi_udl 0.27.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "uniffi_bindgen_kotlin_multiplatform"
|
||||
version = "0.1.0"
|
||||
source = "git+https://gitlab.com/trixnity/uniffi-kotlin-multiplatform-bindings?rev=e8e3a88df5b657787c1198425c16008232b26548#e8e3a88df5b657787c1198425c16008232b26548"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"askama 0.12.1",
|
||||
"camino",
|
||||
"clap 4.5.4",
|
||||
"heck 0.4.1",
|
||||
"include_dir",
|
||||
"paste",
|
||||
"serde",
|
||||
"toml",
|
||||
"uniffi_bindgen 0.25.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "uniffi_build"
|
||||
version = "0.23.0"
|
||||
|
||||
@@ -18,7 +18,7 @@ log = { workspace = true }
|
||||
uniffi = { workspace = true, features = [ "bindgen-tests", "cli" ] }
|
||||
# Bindgen used by KMP, version has to match the one supported by KMP
|
||||
uniffi_bindgen = "0.25.2"
|
||||
uniffi-kotlin-multiplatform = { git = "https://gitlab.com/trixnity/uniffi-kotlin-multiplatform-bindings", rev = "55d51f3abf9819b32bd81756053dcfc10f8d5522" }
|
||||
uniffi_bindgen_kotlin_multiplatform = { git = "https://gitlab.com/trixnity/uniffi-kotlin-multiplatform-bindings", rev = "e8e3a88df5b657787c1198425c16008232b26548" }
|
||||
camino = "1.1.1"
|
||||
thiserror = { workspace = true }
|
||||
tokio = { version = "1", features = ["rt"] }
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use camino::Utf8Path;
|
||||
use uniffi_kotlin_multiplatform::KotlinBindingGenerator;
|
||||
use uniffi_bindgen_kotlin_multiplatform::KotlinBindingGenerator;
|
||||
|
||||
fn main() {
|
||||
uniffi::uniffi_bindgen_main();
|
||||
|
||||
@@ -38,10 +38,6 @@ url = "2.5.0"
|
||||
futures-util = { version = "0.3.28", default-features = false, features = ["sink", "std"] }
|
||||
async-trait = "0.1.80"
|
||||
|
||||
# Pin these versions to fix iOS build issues
|
||||
security-framework = "=2.10.0"
|
||||
security-framework-sys = "=2.10.0"
|
||||
|
||||
[dev-dependencies]
|
||||
tempdir = "0.3.7"
|
||||
uuid = { version = "1.8.0", features = ["v4"] }
|
||||
@@ -49,3 +45,8 @@ uuid = { version = "1.8.0", features = ["v4"] }
|
||||
[build-dependencies]
|
||||
anyhow = { version = "1.0.79", features = ["backtrace"] }
|
||||
glob = "0.3.1"
|
||||
|
||||
# Pin these versions to fix iOS build issues
|
||||
[target.'cfg(target_os = "ios")'.build-dependencies]
|
||||
security-framework = "=2.10.0"
|
||||
security-framework-sys = "=2.10.0"
|
||||
|
||||
@@ -281,6 +281,9 @@ dependencies {
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
|
||||
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
||||
|
||||
implementation 'androidx.core:core-ktx:1.3.2'
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:${rootProject.ext.kotlin_version}"
|
||||
|
||||
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.fbjni'
|
||||
|
||||
@@ -6,6 +6,7 @@ buildscript {
|
||||
minSdkVersion = 24
|
||||
compileSdkVersion = 34
|
||||
targetSdkVersion = 34
|
||||
kotlin_version = "1.8.0"
|
||||
|
||||
ndkVersion = "25.1.8937393"
|
||||
}
|
||||
@@ -17,6 +18,7 @@ buildscript {
|
||||
classpath('com.android.tools.build:gradle:7.4.2')
|
||||
classpath("com.facebook.react:react-native-gradle-plugin")
|
||||
classpath("de.undercouch:gradle-download-task:5.0.1")
|
||||
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user