* checkout (v3) * setup-java (v3) * cache (v3) * upload-artifact (v3) * setup-python (v4)
56 lines
2.0 KiB
YAML
56 lines
2.0 KiB
YAML
name: Test Swift
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- "bdk-ffi/**"
|
|
- "bdk-swift/**"
|
|
pull_request:
|
|
paths:
|
|
- "bdk-ffi/**"
|
|
- "bdk-swift/**"
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: macos-12
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: "Set default Rust version to 1.67.0"
|
|
run: rustup default 1.67.0
|
|
|
|
- name: Install Rust targets
|
|
run: |
|
|
rustup install nightly-x86_64-apple-darwin
|
|
rustup component add rust-src --toolchain nightly-x86_64-apple-darwin
|
|
rustup target add aarch64-apple-darwin x86_64-apple-darwin
|
|
|
|
- name: Run bdk-ffi-bindgen
|
|
working-directory: bdk-ffi
|
|
run: cargo run --bin uniffi-bindgen generate src/bdk.udl --language swift --out-dir ../bdk-swift/Sources/BitcoinDevKit --no-format
|
|
|
|
- name: Build bdk-ffi for x86_64-apple-darwin
|
|
run: cargo build --package bdk-ffi --profile release-smaller --target x86_64-apple-darwin
|
|
|
|
- name: Build bdk-ffi for aarch64-apple-darwin
|
|
run: cargo build --package bdk-ffi --profile release-smaller --target aarch64-apple-darwin
|
|
|
|
- name: Create lipo-macos
|
|
run: |
|
|
mkdir -p target/lipo-macos/release-smaller
|
|
lipo target/aarch64-apple-darwin/release-smaller/libbdkffi.a target/x86_64-apple-darwin/release-smaller/libbdkffi.a -create -output target/lipo-macos/release-smaller/libbdkffi.a
|
|
|
|
- name: Create bdkFFI.xcframework
|
|
working-directory: bdk-swift
|
|
run: |
|
|
mv Sources/BitcoinDevKit/bdk.swift Sources/BitcoinDevKit/BitcoinDevKit.swift
|
|
cp Sources/BitcoinDevKit/bdkFFI.h bdkFFI.xcframework/macos-arm64_x86_64/bdkFFI.framework/Headers
|
|
cp ../target/lipo-macos/release-smaller/libbdkffi.a bdkFFI.xcframework/macos-arm64_x86_64/bdkFFI.framework/bdkFFI
|
|
rm Sources/BitcoinDevKit/bdkFFI.h
|
|
rm Sources/BitcoinDevkit/bdkFFI.modulemap
|
|
|
|
- name: Run Swift tests
|
|
working-directory: bdk-swift
|
|
run: swift test
|