name: Rust-CI on: push: branches: - "main" - "develop" - "release/*" paths: - "frontend/rust-lib/**" - "shared-lib/**" pull_request: branches: - "main" - "develop" - "release/*" paths: - "frontend/rust-lib/**" - "shared-lib/**" env: CARGO_TERM_COLOR: always RUST_TOOLCHAIN: "1.65" FLUTTER_VERSION: "3.10.1" jobs: test-on-ubuntu: runs-on: ubuntu-latest 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 }} override: true components: rustfmt, clippy profile: minimal - name: Install flutter id: flutter uses: subosito/flutter-action@v2 with: channel: "stable" flutter-version: ${{ env.FLUTTER_VERSION }} cache: true - name: Install prerequisites working-directory: frontend run: | cargo install --force cargo-make cargo install --force duckscript_cli - uses: Swatinem/rust-cache@v2 with: prefix-key: 'ubuntu-latest' workspaces: | frontend/rust-lib - name: Build FlowySDK working-directory: frontend run: | cargo make --profile development-linux-x86_64 appflowy-core-dev - name: rustfmt rust-lib run: cargo fmt --all -- --check working-directory: frontend/rust-lib/ - name: clippy rust-lib run: cargo clippy --features="rev-sqlite" working-directory: frontend/rust-lib - name: Run rust-lib tests working-directory: frontend/rust-lib run: RUST_LOG=info cargo test --no-default-features --features="rev-sqlite" - name: rustfmt shared-lib run: cargo fmt --all -- --check working-directory: shared-lib - name: clippy shared-lib run: cargo clippy -- -D warnings working-directory: shared-lib - name: Run shared-lib tests working-directory: shared-lib run: RUST_LOG=info cargo test --no-default-features