fix(android): pin injected openssl to <=0.10.78 for rustc 1.71 (#19) #3
Workflow file for this run
This file contains hidden or 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
| 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: frostdart-linux-x86_64.so | |
| - target: aarch64-unknown-linux-gnu | |
| asset: frostdart-linux-aarch64.so | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Add Rust target | |
| run: rustup +1.71.0 target add ${{ matrix.target }} | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src/serai | |
| key: linux-${{ matrix.target }} | |
| - name: Build | |
| env: | |
| CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc | |
| run: | | |
| cd src/serai/hrf | |
| cargo +1.71.0 build --target ${{ matrix.target }} --release --lib | |
| cp ../target/${{ matrix.target }}/release/libhrf_api.so \ | |
| ../../../${{ matrix.asset }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.asset }} | |
| path: ${{ 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 | |
| with: | |
| submodules: recursive | |
| - name: Add Rust target | |
| run: rustup +1.71.0 target add ${{ matrix.target }} | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src/serai | |
| key: android-${{ matrix.abi }} | |
| - name: Build | |
| env: | |
| ANDROID_NDK_ROOT: /opt/android-ndk-r28 | |
| run: | | |
| cd src/serai/hrf | |
| sed -i 's/\[dependencies\]/[dependencies]\nopenssl = { version = "<=0.10.78", features = ["vendored"] }/' Cargo.toml | |
| cargo +1.71.0 ndk --target ${{ matrix.target }} --platform 21 build --release | |
| cp ../target/${{ matrix.target }}/release/libhrf_api.so \ | |
| ../../../frostdart-android-${{ matrix.abi }}.so | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: frostdart-android-${{ matrix.abi }}.so | |
| path: frostdart-android-${{ matrix.abi }}.so | |
| build-windows: | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: stackwallet/stackwallet-ci:latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Add Rust target | |
| run: rustup +1.71.0 target add x86_64-pc-windows-gnu | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src/serai | |
| - name: Build | |
| run: | | |
| cd src/serai/hrf | |
| cargo +1.71.0 build --target x86_64-pc-windows-gnu --release --lib | |
| cp ../target/x86_64-pc-windows-gnu/release/hrf_api.dll \ | |
| ../../../frostdart-windows-x86_64.dll | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: frostdart-windows-x86_64.dll | |
| path: frostdart-windows-x86_64.dll | |
| build-ios: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: '1.71.0' | |
| targets: aarch64-apple-ios | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src/serai | |
| - name: Build | |
| run: | | |
| cd src/serai/hrf | |
| sed -i '' 's/name = "hrf-api"/name = "frostdart"/' Cargo.toml | |
| export IPHONEOS_DEPLOYMENT_TARGET=15.0 | |
| export RUSTFLAGS="-C link-arg=-mios-version-min=15.0" | |
| cargo build --target aarch64-apple-ios --release --lib | |
| cp ../target/aarch64-apple-ios/release/libfrostdart.a \ | |
| ../../../frostdart-ios-aarch64.a | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: frostdart-ios-aarch64.a | |
| path: frostdart-ios-aarch64.a | |
| build-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: '1.71.0' | |
| targets: aarch64-apple-darwin | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src/serai | |
| - name: Build | |
| run: | | |
| cd src/serai/hrf | |
| cargo build --target aarch64-apple-darwin --release --lib | |
| xcodebuild -create-xcframework \ | |
| -library ../target/aarch64-apple-darwin/release/libhrf_api.dylib \ | |
| -output ../../../frostdart.xcframework | |
| cd ../../.. | |
| zip -r frostdart.xcframework.zip frostdart.xcframework | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: frostdart.xcframework.zip | |
| path: frostdart.xcframework.zip | |
| 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/* |