name: integration test on: push: branches: - "main" - "release/*" paths: - "frontend/appflowy_flutter/**" pull_request: branches: - "main" - "release/*" paths: - "frontend/appflowy_flutter/**" env: CARGO_TERM_COLOR: always jobs: tests: strategy: matrix: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: "stable-2022-04-07" - uses: subosito/flutter-action@v2 with: channel: "stable" flutter-version: "3.7.5" cache: true - name: Cache Cargo uses: actions/cache@v2 with: path: | ~/.cargo key: ${{ runner.os }}-cargo-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }} - name: Cache Rust id: cache-rust-target uses: actions/cache@v2 with: path: | frontend/rust-lib/target shared-lib/target key: ${{ runner.os }}-rust-rust-lib-share-lib-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }} - name: Setup Environment run: | cargo install --force cargo-make 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 elif [ "$RUNNER_OS" == "Windows" ]; then vcpkg integrate install elif [ "$RUNNER_OS" == "macOS" ]; then echo 'do nothing' fi shell: bash - if: steps.cache-cargo.outputs.cache-hit != 'true' name: Rust Deps working-directory: frontend run: | cargo install cargo-make cargo make appflowy-flutter-deps-tools - name: Config Flutter 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 flutter config --enable-windows-desktop fi shell: bash - name: Build Test lib working-directory: frontend run: | if [ "$RUNNER_OS" == "Linux" ]; then cargo make --profile development-linux-x86_64 appflowy-dev elif [ "$RUNNER_OS" == "macOS" ]; then cargo make --profile development-mac-x86_64 appflowy-dev elif [ "$RUNNER_OS" == "Windows" ]; then cargo make --profile development-windows-x86 appflowy-dev fi shell: bash - name: Run AppFlowy 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 --verbose elif [ "$RUNNER_OS" == "macOS" ]; then flutter test integration_test/runner.dart -d macOS --coverage --verbose elif [ "$RUNNER_OS" == "Windows" ]; then flutter test integration_test/runner.dart -d Windows --coverage --verbose fi shell: bash # - uses: codecov/codecov-action@v3 # with: # name: appflowy # flags: appflowy # env_vars: ${{ matrix.os }} # fail_ci_if_error: true # verbose: true