Skip to content

Merge branch 'fix/get-chain-height-chain-type' #4

Merge branch 'fix/get-chain-height-chain-type'

Merge branch 'fix/get-chain-height-chain-type' #4

Workflow file for this run

name: Build and Release
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
workflow_dispatch:
jobs:
build-linux:
runs-on: ubuntu-24.04
container:
image: stackwallet/stackwallet-ci:latest
strategy:
matrix:
include:
- target: x86_64-unknown-linux-gnu
asset: libmwc_wallet-linux-x86_64.so
- target: aarch64-unknown-linux-gnu
asset: libmwc_wallet-linux-aarch64.so
steps:
- uses: actions/checkout@v6
- name: Add Rust target
run: rustup target add ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
with:
workspaces: rust
key: linux-${{ matrix.target }}
- name: Build
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
run: |
cd rust
cargo build --target ${{ matrix.target }} --release --lib
cp target/${{ matrix.target }}/release/libmwc_wallet.so ${{ matrix.asset }}
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.asset }}
path: rust/${{ matrix.asset }}
build-android:
runs-on: ubuntu-24.04
container:
image: stackwallet/stackwallet-ci:latest
strategy:
matrix:
include:
- target: aarch64-linux-android
abi: arm64-v8a
- target: armv7-linux-androideabi
abi: armeabi-v7a
- target: x86_64-linux-android
abi: x86_64
steps:
- uses: actions/checkout@v6
- name: Add Rust target
run: rustup target add ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
with:
workspaces: rust
key: android-${{ matrix.abi }}
- name: Build
env:
ANDROID_NDK_ROOT: /opt/android-ndk-r28
run: |
cd rust
cargo ndk --target ${{ matrix.target }} --platform 21 build --release
cp target/${{ matrix.target }}/release/libmwc_wallet.so \
libmwc_wallet-android-${{ matrix.abi }}.so
- uses: actions/upload-artifact@v4
with:
name: libmwc_wallet-android-${{ matrix.abi }}.so
path: rust/libmwc_wallet-android-${{ matrix.abi }}.so
build-ios:
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: '1.85.1'
targets: aarch64-apple-ios
- uses: Swatinem/rust-cache@v2
with:
workspaces: rust
- name: Install cbindgen
run: cargo install cbindgen --version 0.24.3
- name: Build
run: |
cd rust
export IPHONEOS_DEPLOYMENT_TARGET=15.0
export RUSTFLAGS="-C link-arg=-mios-version-min=15.0"
cargo build --release --target aarch64-apple-ios --lib
cp target/aarch64-apple-ios/release/libmwc_wallet.a libmwc_wallet-ios-aarch64.a
cbindgen src/lib.rs -l c > libmwc_wallet.h
- uses: actions/upload-artifact@v4
with:
name: libmwc_wallet-ios-aarch64.a
path: rust/libmwc_wallet-ios-aarch64.a
- uses: actions/upload-artifact@v4
with:
name: libmwc_wallet.h
path: rust/libmwc_wallet.h
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: '1.85.1'
targets: aarch64-apple-darwin
- uses: Swatinem/rust-cache@v2
with:
workspaces: rust
- name: Install cbindgen
run: cargo install cbindgen --version 0.24.3
- name: Build
run: |
cd rust
cbindgen src/lib.rs -l c > libmwc_wallet.h
cargo build --target aarch64-apple-darwin --release --lib
mkdir -p Headers
cp libmwc_wallet.h Headers/
xcodebuild -create-xcframework \
-library target/aarch64-apple-darwin/release/libmwc_wallet.a \
-headers Headers/libmwc_wallet.h \
-output MWCWallet.xcframework
zip -r MWCWallet.xcframework.zip MWCWallet.xcframework
- uses: actions/upload-artifact@v4
with:
name: MWCWallet.xcframework.zip
path: rust/MWCWallet.xcframework.zip
build-windows:
runs-on: ubuntu-24.04
container:
image: stackwallet/stackwallet-ci:latest
steps:
- uses: actions/checkout@v6
- name: Add Rust target
run: rustup target add x86_64-pc-windows-gnu
- uses: Swatinem/rust-cache@v2
with:
workspaces: rust
- name: Build
run: |
cd rust
cargo build --target x86_64-pc-windows-gnu --release --lib
cp target/x86_64-pc-windows-gnu/release/mwc_wallet.dll \
libmwc_wallet-windows-x86_64.dll
cp "$(x86_64-w64-mingw32-gcc -print-file-name=libstdc++-6.dll)" libstdc++-6.dll
cp "$(x86_64-w64-mingw32-gcc -print-file-name=libgcc_s_seh-1.dll)" libgcc_s_seh-1.dll
- uses: actions/upload-artifact@v4
with:
name: libmwc_wallet-windows-x86_64.dll
path: rust/libmwc_wallet-windows-x86_64.dll
- uses: actions/upload-artifact@v4
with:
name: libstdc++-6.dll
path: rust/libstdc++-6.dll
- uses: actions/upload-artifact@v4
with:
name: libgcc_s_seh-1.dll
path: rust/libgcc_s_seh-1.dll
release:
needs: [build-linux, build-android, build-ios, build-macos, build-windows]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: true
- name: Generate checksums
run: |
cd artifacts
sha256sum * > checksums.txt
- uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: artifacts/*