rust_coverage.yml 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. name: Rust coverage tests
  2. on:
  3. push:
  4. branches:
  5. - "main"
  6. paths:
  7. - "frontend/rust-lib/**"
  8. - "shared-lib/**"
  9. pull_request:
  10. branches:
  11. - "main"
  12. paths:
  13. - "frontend/rust-lib/**"
  14. - "shared-lib/**"
  15. env:
  16. CARGO_TERM_COLOR: always
  17. jobs:
  18. test-coverage:
  19. runs-on: ubuntu-latest
  20. steps:
  21. - name: Checkout
  22. uses: actions/checkout@v2
  23. - id: rust_toolchain
  24. uses: actions-rs/toolchain@v1
  25. with:
  26. toolchain: 'stable-2022-04-07'
  27. - name: Cache Cargo
  28. uses: actions/cache@v2
  29. with:
  30. path: |
  31. ~/.cargo
  32. key: ${{ runner.os }}-cargo-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
  33. - name: Cache Rust
  34. uses: actions/cache@v2
  35. with:
  36. path: |
  37. frontend/rust-lib/target
  38. shared-lib/target
  39. key: ${{ runner.os }}-rust-rust-lib-share-lib-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
  40. - name: Setup Environment
  41. run: |
  42. if [ "$RUNNER_OS" == "Linux" ]; then
  43. sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
  44. sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
  45. sudo apt-get update
  46. sudo apt-get install -y dart curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
  47. sudo apt-get install keybinder-3.0
  48. elif [ "$RUNNER_OS" == "macOS" ]; then
  49. echo 'do nothing'
  50. fi
  51. shell: bash
  52. - name: Install cargo-make, grcov and llvm-tools-preview
  53. working-directory: frontend
  54. run: |
  55. cargo install cargo-make
  56. cargo install grcov
  57. rustup component add llvm-tools-preview
  58. - name: Run Coverage tests and generate LCOV report
  59. working-directory: frontend
  60. run: cargo make get_ci_test_coverage