feat: improve copy paste plugins, and support in-app copy-paste #2535
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: integration test | |
on: | |
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: true | |
jobs: | |
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 | |
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/wretry.action@v1.0.36 | |
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 |