rust_coverage.yml 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. name: Rust code coverage
  2. on:
  3. push:
  4. branches:
  5. - "main"
  6. - "release/*"
  7. paths:
  8. - "frontend/rust-lib/**"
  9. - "shared-lib/**"
  10. env:
  11. CARGO_TERM_COLOR: always
  12. FLUTTER_VERSION: "3.10.1"
  13. RUST_TOOLCHAIN: "1.70"
  14. jobs:
  15. tests:
  16. runs-on: ubuntu-latest
  17. steps:
  18. - name: Checkout source code
  19. uses: actions/checkout@v2
  20. - name: Install Rust toolchain
  21. id: rust_toolchain
  22. uses: actions-rs/toolchain@v1
  23. with:
  24. toolchain: ${{ env.RUST_TOOLCHAIN }}
  25. target: ${{ matrix.job.target }}
  26. override: true
  27. profile: minimal
  28. - name: Install flutter
  29. id: flutter
  30. uses: subosito/flutter-action@v2
  31. with:
  32. channel: "stable"
  33. flutter-version: ${{ env.FLUTTER_VERSION }}
  34. cache: true
  35. - name: Install prerequisites
  36. working-directory: frontend
  37. run: |
  38. cargo install --force cargo-make
  39. cargo install --force duckscript_cli
  40. - uses: Swatinem/rust-cache@v2
  41. with:
  42. prefix-key: ${{ matrix.job.os }}
  43. - name: Install code-coverage tools
  44. working-directory: frontend
  45. run: |
  46. sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
  47. sudo apt-get update
  48. sudo apt-get install keybinder-3.0
  49. cargo install grcov
  50. rustup component add llvm-tools-preview
  51. - name: Run tests
  52. working-directory: frontend
  53. run: cargo make rust_unit_test_with_coverage