rust_coverage.yml 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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.3.9"
  13. RUST_TOOLCHAIN: "1.65"
  14. jobs:
  15. tests:
  16. runs-on: ubuntu-latest
  17. steps:
  18. - name: Install Rust toolchain
  19. id: rust_toolchain
  20. uses: actions-rs/toolchain@v1
  21. with:
  22. toolchain: ${{ env.RUST_TOOLCHAIN }}
  23. target: ${{ matrix.job.target }}
  24. override: true
  25. profile: minimal
  26. - name: Install flutter
  27. id: flutter
  28. uses: subosito/flutter-action@v2
  29. with:
  30. channel: "stable"
  31. flutter-version: ${{ env.FLUTTER_VERSION }}
  32. cache: true
  33. - name: Install prerequisites
  34. working-directory: frontend
  35. run: |
  36. cargo install --force cargo-make
  37. cargo install --force duckscript_cli
  38. - uses: Swatinem/rust-cache@v2
  39. with:
  40. prefix-key: ${{ matrix.job.os }}
  41. - name: Install code-coverage tools
  42. working-directory: frontend
  43. run: |
  44. sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
  45. sudo apt-get update
  46. sudo apt-get install keybinder-3.0
  47. cargo install grcov
  48. rustup component add llvm-tools-preview
  49. - name: Run tests
  50. working-directory: frontend
  51. run: cargo make rust_unit_test_with_coverage