-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
2,023 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
name: Build ls-sdk-bindings for Android | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
ref: | ||
description: 'commit/tag/branch reference' | ||
required: true | ||
type: string | ||
workflow_call: | ||
inputs: | ||
repository: | ||
description: 'sdk repository, defaults to current repository' | ||
required: false | ||
type: string | ||
ref: | ||
description: 'commit/tag/branch reference' | ||
required: true | ||
type: string | ||
use-dummy-binaries: | ||
description: 'If true, creates dummy binaries rather than real binaries' | ||
required: false | ||
type: boolean | ||
default: false | ||
|
||
jobs: | ||
build: | ||
if: ${{ !inputs.use-dummy-binaries }} | ||
runs-on: ubuntu-latest | ||
name: build ${{ matrix.target }} | ||
strategy: | ||
matrix: | ||
target: [ | ||
aarch64-linux-android, | ||
armv7-linux-androideabi, | ||
i686-linux-android, | ||
x86_64-linux-android, | ||
] | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ inputs.ref }} | ||
repository: ${{ inputs.repository || github.repository }} | ||
|
||
- name: Install rust toolchain | ||
run: | | ||
rustup set auto-self-update disable | ||
rustup toolchain install stable --profile minimal | ||
rustup target add ${{ matrix.target }} | ||
cargo install cargo-ndk | ||
- uses: Swatinem/rust-cache@v2 | ||
with: | ||
workspaces: lib | ||
|
||
- name: Build ls-sdk-bindings | ||
working-directory: lib/ls-sdk-bindings | ||
run: | | ||
cargo ndk -t ${{ matrix.target }} build --release | ||
- name: Copy build output | ||
run: | | ||
mkdir -p dist | ||
cp lib/target/${{ matrix.target }}/release/libbreez_liquid_sdk_bindings.so dist | ||
- name: Copy libc++_shared | ||
if: ${{ matrix.target == 'armv7-linux-androideabi'}} | ||
run: cp $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so dist | ||
|
||
- name: Copy libc++_shared | ||
if: ${{ matrix.target != 'armv7-linux-androideabi'}} | ||
run: cp $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/${{ matrix.target }}/libc++_shared.so dist | ||
|
||
- name: Archive release | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-${{ matrix.target }} | ||
path: dist/* | ||
|
||
jnilibs: | ||
needs: build | ||
runs-on: ubuntu-latest | ||
name: build jniLibs | ||
steps: | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-aarch64-linux-android | ||
path: arm64-v8a | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-armv7-linux-androideabi | ||
path: armeabi-v7a | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-i686-linux-android | ||
path: x86 | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-x86_64-linux-android | ||
path: x86_64 | ||
|
||
- name: Archive jniLibs | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-android-jniLibs | ||
path: ./* | ||
|
||
build-dummies: | ||
if: ${{ inputs.use-dummy-binaries }} | ||
runs-on: ubuntu-latest | ||
name: build android dummies | ||
strategy: | ||
matrix: | ||
target: [ | ||
aarch64-linux-android, | ||
armv7-linux-androideabi, | ||
i686-linux-android, | ||
x86_64-linux-android, | ||
] | ||
steps: | ||
- name: Build Android ${{ matrix.target }} dummy | ||
run: | | ||
touch libbreez_liquid_sdk_bindings.so | ||
touch libc++_shared.so.so | ||
- name: Upload dummy Android ${{ matrix.target }} artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-${{ matrix.target }} | ||
path: ./* | ||
|
||
jnilibs-dummy: | ||
needs: build-dummies | ||
runs-on: ubuntu-latest | ||
name: build jniLibs dummy | ||
steps: | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-aarch64-linux-android | ||
path: arm64-v8a | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-armv7-linux-androideabi | ||
path: armeabi-v7a | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-i686-linux-android | ||
path: x86 | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-x86_64-linux-android | ||
path: x86_64 | ||
|
||
- name: Archive jniLibs | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-android-jniLibs | ||
path: ./* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
name: Build ls-sdk-bindings for Darwin | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
ref: | ||
description: 'commit/tag/branch reference' | ||
required: true | ||
type: string | ||
workflow_call: | ||
inputs: | ||
repository: | ||
description: 'sdk repository, defaults to current repository' | ||
required: false | ||
type: string | ||
ref: | ||
description: 'commit/tag/branch reference' | ||
required: true | ||
type: string | ||
use-dummy-binaries: | ||
description: 'If true, creates dummy binaries rather than real binaries' | ||
required: false | ||
type: boolean | ||
default: false | ||
|
||
jobs: | ||
build: | ||
if: ${{ !inputs.use-dummy-binaries }} | ||
runs-on: macOS-latest | ||
name: build ${{ matrix.target }} | ||
strategy: | ||
matrix: | ||
target: [ | ||
aarch64-apple-darwin, | ||
x86_64-apple-darwin, | ||
] | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ inputs.ref }} | ||
repository: ${{ inputs.repository || github.repository }} | ||
|
||
- name: Install rust toolchain | ||
run: | | ||
rustup set auto-self-update disable | ||
rustup toolchain install stable --profile minimal | ||
rustup target add ${{ matrix.target }} | ||
cargo install cargo-lipo | ||
- uses: Swatinem/rust-cache@v2 | ||
with: | ||
workspaces: lib | ||
|
||
- name: Build ls-sdk-bindings | ||
working-directory: lib/ls-sdk-bindings | ||
run: cargo lipo --release --targets ${{ matrix.target }} | ||
|
||
- name: Archive release | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-${{ matrix.target }} | ||
path: | | ||
lib/target/${{ matrix.target }}/release/libbreez_liquid_sdk_bindings.dylib | ||
lib/target/${{ matrix.target }}/release/libbreez_liquid_sdk_bindings.a | ||
merge: | ||
runs-on: macOS-latest | ||
needs: build | ||
name: build darwin-universal | ||
steps: | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-aarch64-apple-darwin | ||
path: aarch64-apple-darwin | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-x86_64-apple-darwin | ||
path: x86_64-apple-darwin | ||
|
||
- name: Build Darwin universal | ||
run: | | ||
mkdir -p darwin-universal | ||
lipo -create -output darwin-universal/libbreez_liquid_sdk_bindings.dylib aarch64-apple-darwin/libbreez_liquid_sdk_bindings.dylib x86_64-apple-darwin/libbreez_liquid_sdk_bindings.dylib | ||
lipo -create -output darwin-universal/libbreez_liquid_sdk_bindings.a aarch64-apple-darwin/libbreez_liquid_sdk_bindings.a x86_64-apple-darwin/libbreez_liquid_sdk_bindings.a | ||
- name: Archive release | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-darwin-universal | ||
path: | | ||
darwin-universal/libbreez_liquid_sdk_bindings.dylib | ||
darwin-universal/libbreez_liquid_sdk_bindings.a | ||
build-dummies: | ||
if: ${{ inputs.use-dummy-binaries }} | ||
runs-on: ubuntu-latest | ||
name: build darwin dummies | ||
strategy: | ||
matrix: | ||
target: [ | ||
aarch64-apple-darwin, | ||
x86_64-apple-darwin, | ||
darwin-universal | ||
] | ||
steps: | ||
- name: Build dummy darwin ${{ matrix.target }} | ||
run: | | ||
touch libbreez_liquid_sdk_bindings.dylib | ||
touch libbreez_liquid_sdk_bindings.a | ||
- name: Upload dummy darwin ${{ matrix.target }} artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ls-sdk-bindings-${{ matrix.target }} | ||
path: ./* |
Oops, something went wrong.