name: iOS and Rust on: push: branches: [main] pull_request: jobs: rust: runs-on: macos-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Format run: cargo fmt -- --check - name: Core check run: cargo check -p tele-core - name: Workspace clippy run: cargo clippy --workspace --all-targets --all-features -- -D warnings - name: Workspace tests run: cargo test --workspace --all-features - name: Fake iOS FFI tests run: cargo test -p tele-ios-ffi --no-default-features --features standalone-fake - name: Swift FFI smoke run: scripts/smoke-ios-ffi-swift.sh /tmp/tele-ios-ffi-swift-smoke - name: Swift app UniFFI bridge typecheck run: scripts/typecheck-ios-uniffi-app-bridge.sh /tmp/tele-ios-ffi-swift-smoke /tmp/tele-ios-ffi-app-typecheck-module-cache - name: Generate iOS FFI bindings run: scripts/generate-ios-ffi-bindings.sh /tmp/tele-ios-ffi - name: Swift bindings typecheck run: swiftc -typecheck -I /tmp/tele-ios-ffi/Headers /tmp/tele-ios-ffi/Swift/tele_ios_ffi.swift - name: Build fake iOS FFI XCFramework run: scripts/build-ios-fake-ffi-xcframework.sh /tmp/tele-ios-fake-ffi-xcframework ios-shell: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Build SwiftUI app shell working-directory: apps/ios/TeleTuiIOS run: swift build --product TeleTuiIOSApp - name: Run SwiftUI smoke tests working-directory: apps/ios/TeleTuiIOS run: swift run TeleTuiIOSSmokeTests