name: iOS CI on: push: branches: - "main" paths: - ".github/workflows/mobile_ci.yaml" - "frontend/**" - "!frontend/appflowy_tauri/**" pull_request: branches: - "main" paths: - ".github/workflows/mobile_ci.yaml" - "frontend/**" - "!frontend/appflowy_tauri/**" env: FLUTTER_VERSION: "3.19.0" RUST_TOOLCHAIN: "1.75" concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: build: if: github.event.pull_request.draft != true strategy: fail-fast: true matrix: os: [macos-14] runs-on: ${{ matrix.os }} steps: - name: Checkout source code uses: actions/checkout@v2 - name: Install Rust toolchain id: rust_toolchain uses: actions-rs/toolchain@v1 with: toolchain: ${{ env.RUST_TOOLCHAIN }} target: aarch64-apple-ios-sim override: true profile: minimal - name: Install flutter id: flutter uses: subosito/flutter-action@v2 with: channel: "stable" flutter-version: ${{ env.FLUTTER_VERSION }} cache: true - uses: Swatinem/rust-cache@v2 with: prefix-key: ${{ matrix.os }} workspaces: | frontend/rust-lib - uses: davidB/rust-cargo-make@v1 with: version: "0.36.6" - name: Install prerequisites working-directory: frontend run: | rustup target install aarch64-apple-ios-sim cargo install --force duckscript_cli cargo install cargo-lipo cargo make appflowy-flutter-deps-tools shell: bash - name: Build AppFlowy working-directory: frontend run: | cargo make --profile development-ios-arm64-sim appflowy-core-dev-ios cargo make --profile development-ios-arm64-sim code_generation - uses: futureware-tech/simulator-action@v3 id: simulator-action with: model: 'iPhone 15' shutdown_after_job: false - name: Run integration tests working-directory: frontend/appflowy_flutter run: flutter test integration_test/runner.dart -d ${{ steps.simulator-action.outputs.udid }}