feat: improve copy paste plugins, and support in-app copy-paste #3248
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: Flutter-CI | |
on: | |
push: | |
branches: | |
- "main" | |
- "develop" | |
- "release/*" | |
paths: | |
- ".github/workflows/flutter_ci.yaml" | |
- "frontend/**" | |
- "!frontend/appflowy_tauri/**" | |
pull_request: | |
branches: | |
- "main" | |
- "develop" | |
- "release/*" | |
paths: | |
- ".github/workflows/flutter_ci.yaml" | |
- "frontend/**" | |
- "!frontend/appflowy_tauri/**" | |
env: | |
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, macos-latest, windows-latest] | |
include: | |
- os: ubuntu-latest | |
flutter_profile: development-linux-x86_64 | |
target: x86_64-unknown-linux-gnu | |
- os: macos-latest | |
flutter_profile: development-mac-x86_64 | |
target: x86_64-apple-darwin | |
- 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 | |
- 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: Flutter Analyzer | |
working-directory: frontend/appflowy_flutter | |
run: | | |
flutter analyze . | |
- name: Run Flutter unit tests | |
working-directory: frontend | |
run: | | |
cargo make dart_unit_test | |
- name: Upload coverage to Codecov | |
uses: Wandalen/wretry.action@v1.0.36 | |
with: | |
action: codecov/codecov-action@v3 | |
with: | | |
name: appflowy | |
flags: appflowy_flutter_unit_test | |
fail_ci_if_error: true | |
verbose: true | |
os: ${{ matrix.os }} | |
token: ${{ secrets.CODECOV_TOKEN }} | |
attempt_limit: 20 | |
attempt_delay: 10000 | |