rust_coverage.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. jobs:
  13. tests:
  14. runs-on: ubuntu-latest
  15. steps:
  16. - name: Checkout
  17. uses: actions/checkout@v2
  18. - id: rust_toolchain
  19. uses: actions-rs/toolchain@v1
  20. with:
  21. toolchain: 'stable-2022-04-07'
  22. - name: Cache Cargo
  23. uses: actions/cache@v2
  24. with:
  25. path: |
  26. ~/.cargo
  27. key: ${{ runner.os }}-cargo-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
  28. - name: Cache Rust
  29. uses: actions/cache@v2
  30. with:
  31. path: |
  32. frontend/rust-lib/target
  33. shared-lib/target
  34. key: ${{ runner.os }}-rust-rust-lib-share-lib-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
  35. - name: Install cargo-make
  36. working-directory: frontend
  37. run: |
  38. cargo install cargo-make
  39. - name: Setup environment - Flutter
  40. uses: subosito/flutter-action@v2
  41. with:
  42. channel: 'stable'
  43. flutter-version: '3.3.9'
  44. - name: Install code-coverage tools
  45. working-directory: frontend
  46. run: |
  47. sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
  48. sudo apt-get update
  49. sudo apt-get install -y build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
  50. sudo apt-get install keybinder-3.0
  51. cargo install grcov
  52. rustup component add llvm-tools-preview
  53. - name: Run tests
  54. working-directory: frontend
  55. run: cargo make rust_unit_test_with_coverage