| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | name: integration teston:  push:    branches:      - "main"      - "release/*"    paths:      - ".github/workflows/integration_test.yml"      - "frontend/**"      - "!frontend/appflowy_tauri/**"  pull_request:    branches:      - "main"      - "release/*"    paths:      - ".github/workflows/integration_test.yml"      - "frontend/**"      - "!frontend/appflowy_tauri/**"env:  CARGO_TERM_COLOR: always  FLUTTER_VERSION: "3.10.1"  RUST_TOOLCHAIN: "1.70"concurrency:  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}  cancel-in-progress: truejobs:  build:    if: github.event.pull_request.draft != true    strategy:      fail-fast: false      matrix:        os: [ubuntu-latest, windows-latest]        include:          - os: ubuntu-latest            flutter_profile: development-linux-x86_64            target: x86_64-unknown-linux-gnu          - os: windows-latest            flutter_profile: development-windows-x86            target: x86_64-pc-windows-msvc    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: ${{ matrix.target }}          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          cache-all-crates: true      - uses: davidB/rust-cargo-make@v1        with:          version: '0.36.6'      - name: Install prerequisites        working-directory: frontend        run: |          cargo install --force duckscript_cli          if [ "$RUNNER_OS" == "Linux" ]; then            sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub            sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list            sudo apt-get update            sudo apt-get install -y dart curl build-essential libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev            sudo apt-get install keybinder-3.0 libnotify-dev          elif [ "$RUNNER_OS" == "Windows" ]; then            vcpkg integrate install          elif [ "$RUNNER_OS" == "macOS" ]; then            echo 'do nothing'          fi          cargo make appflowy-flutter-deps-tools        shell: bash      - name: Enable Flutter Desktop        run: |          if [ "$RUNNER_OS" == "Linux" ]; then            flutter config --enable-linux-desktop          elif [ "$RUNNER_OS" == "macOS" ]; then            flutter config --enable-macos-desktop          elif [ "$RUNNER_OS" == "Windows" ]; then            git config --system core.longpaths true            flutter config --enable-windows-desktop          fi        shell: bash      - name: Build AppFlowy        working-directory: frontend        run: |          cargo make --profile ${{ matrix.flutter_profile }} appflowy-dev      - name: Run Flutter integration tests        working-directory: frontend/appflowy_flutter        run: |          if [ "$RUNNER_OS" == "Linux" ]; then            export DISPLAY=:99            sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &            sudo apt-get install network-manager            flutter test integration_test/runner.dart -d Linux --coverage          elif [ "$RUNNER_OS" == "macOS" ]; then            flutter test integration_test/runner.dart -d macOS --coverage          elif [ "$RUNNER_OS" == "Windows" ]; then            flutter test integration_test/runner.dart -d Windows --coverage          fi        shell: bash      - name: Upload coverage to Codecov        uses: Wandalen/[email protected]        with:          action: codecov/codecov-action@v3          with: |            name: appflowy            flags: appflowy_flutter_integrateion_test            fail_ci_if_error: true            verbose: true            os: ${{ matrix.os }}            token: ${{ secrets.CODECOV_TOKEN }}          attempt_limit: 20          attempt_delay: 10000
 |