rust_ci.yaml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. name: Rust-CI
  2. on:
  3. push:
  4. branches:
  5. - "main"
  6. - "release/*"
  7. paths:
  8. - "frontend/rust-lib/**"
  9. - "shared-lib/**"
  10. pull_request:
  11. branches:
  12. - "main"
  13. - "release/*"
  14. paths:
  15. - "frontend/rust-lib/**"
  16. - "shared-lib/**"
  17. env:
  18. CARGO_TERM_COLOR: always
  19. RUST_TOOLCHAIN: "1.65"
  20. jobs:
  21. test-on-ubuntu:
  22. runs-on: ubuntu-latest
  23. steps:
  24. - name: Install Rust toolchain
  25. id: rust_toolchain
  26. uses: actions-rs/toolchain@v1
  27. with:
  28. toolchain: ${{ env.RUST_TOOLCHAIN }}
  29. override: true
  30. components: rustfmt, clippy
  31. profile: minimal
  32. - name: Install prerequisites
  33. working-directory: frontend
  34. run: |
  35. cargo install --force cargo-make
  36. cargo install --force duckscript_cli
  37. - uses: Swatinem/rust-cache@v2
  38. with:
  39. prefix-key: ${{ matrix.job.os }}
  40. - name: Build FlowySDK
  41. working-directory: frontend
  42. run: |
  43. cargo make --profile development-linux-x86_64 appflowy-sdk-dev
  44. - name: rustfmt rust-lib
  45. run: cargo fmt --all -- --check
  46. working-directory: frontend/rust-lib/
  47. - name: clippy rust-lib
  48. run: cargo clippy --no-default-features
  49. working-directory: frontend/rust-lib
  50. - name: Run rust-lib tests
  51. working-directory: frontend/rust-lib
  52. run: RUST_LOG=info cargo test --no-default-features --features="sync"
  53. - name: rustfmt shared-lib
  54. run: cargo fmt --all -- --check
  55. working-directory: shared-lib
  56. - name: clippy shared-lib
  57. run: cargo clippy --no-default-features
  58. working-directory: shared-lib
  59. - name: Run shared-lib tests
  60. working-directory: shared-lib
  61. run: RUST_LOG=info cargo test --no-default-features