From 84f5677abbfc22d92491c41e5b01235a3e6c88e1 Mon Sep 17 00:00:00 2001 From: Steve Myers Date: Tue, 22 Nov 2022 21:12:10 -0800 Subject: [PATCH] Add test-swift workflow --- .github/workflows/test-swift.yaml | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/workflows/test-swift.yaml diff --git a/.github/workflows/test-swift.yaml b/.github/workflows/test-swift.yaml new file mode 100644 index 0000000..9aec8a2 --- /dev/null +++ b/.github/workflows/test-swift.yaml @@ -0,0 +1,51 @@ +name: Test Swift +on: + push: + paths: + - "bdk-ffi/**" + - "bdk-swift/**" + pull_request: + paths: + - "bdk-ffi/**" + - "bdk-swift/**" + +jobs: + build: + runs-on: macos-12 + steps: + - name: Checkout branch + uses: actions/checkout@v2 + + - 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 --package bdk-ffi-bindgen -- --language swift --out-dir ../bdk-swift/Sources/BitcoinDevKit + + - name: Build bdk-ffi for x86_64-apple-darwin + run: cargo build --profile release-smaller --target x86_64-apple-darwin + + - name: Build bdk-ffi for aarch64-apple-darwin + run: cargo build --profile release-smaller --target aarch64-apple-darwin + + - name: Create lipo-ios-sim and 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