45 lines
1.6 KiB
YAML
45 lines
1.6 KiB
YAML
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
|