Skip to content

Maple 3.0: Native Rust/SwiftUI/Compose/iced app #18

Maple 3.0: Native Rust/SwiftUI/Compose/iced app

Maple 3.0: Native Rust/SwiftUI/Compose/iced app #18

name: Native 3.0 iOS Beta
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: native-3-ios-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build-testflight:
if: github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.fork == false
runs-on: macos-26-xlarge
env:
MAPLE_API_ENV: dev
MAPLE_CI_BUILD_ROOT: ${{ github.workspace }}/native/target/maple-ci
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v4
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26.2"
- name: Install xcodegen
run: brew install xcodegen
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-ios,aarch64-apple-ios-sim
- name: Cache Rust artifacts
uses: Swatinem/rust-cache@v2
with:
workspaces: |
native -> target
native/rmp-cli -> target
- name: Set up App Store Connect API key
env:
APPLE_API_PRIVATE_KEY: ${{ secrets.APPLE_API_PRIVATE_KEY }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
run: |
mkdir -p "$RUNNER_TEMP/app-store-connect"
echo "$APPLE_API_PRIVATE_KEY" | base64 --decode > "$RUNNER_TEMP/app-store-connect/AuthKey_${APPLE_API_KEY}.p8"
chmod 600 "$RUNNER_TEMP/app-store-connect/AuthKey_${APPLE_API_KEY}.p8"
echo "APPLE_API_KEY_PATH=$RUNNER_TEMP/app-store-connect/AuthKey_${APPLE_API_KEY}.p8" >> "$GITHUB_ENV"
- name: Build and upload native iOS beta
env:
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
APPLE_API_KEY_PATH: ${{ env.APPLE_API_KEY_PATH }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: bash native/scripts/ci/build-ios-testflight.sh
- name: Upload iOS artifacts
uses: actions/upload-artifact@v4
with:
name: native-ios-beta
path: |
native/target/maple-ci/ios/export/*.ipa
retention-days: 7