diff --git a/.github/workflows/mobile_ci.yaml b/.github/workflows/android_ci.yaml similarity index 95% rename from .github/workflows/mobile_ci.yaml rename to .github/workflows/android_ci.yaml index 9283da9189ffb..89c3d0658ddff 100644 --- a/.github/workflows/mobile_ci.yaml +++ b/.github/workflows/android_ci.yaml @@ -1,4 +1,4 @@ -name: Mobile-CI +name: Android CI on: push: @@ -125,4 +125,6 @@ jobs: api-level: 29 arch: x86_64 working-directory: frontend/appflowy_flutter - script: flutter test integration_test/runner.dart + script: flutter drive \ + --driver=test_driver/integration_test.dart \ + --target=integration_test/runner.dart \ No newline at end of file diff --git a/.github/workflows/ios_ci.yaml b/.github/workflows/ios_ci.yaml new file mode 100644 index 0000000000000..88811a6409020 --- /dev/null +++ b/.github/workflows/ios_ci.yaml @@ -0,0 +1,89 @@ +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.18.0-0.2.pre" + 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-latest] + 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: "beta" + flutter-version: ${{ env.FLUTTER_VERSION }} + cache: true + + - uses: futureware-tech/simulator-action@v1 + id: simulator + with: + model: "iPhone 13" + + - 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 + + - name: Run integration tests + working-directory: frontend/appflowy_flutter + run: flutter test integration_test/runner.dart -d "iPhone 13"