name: Rust code coverage on: push: branches: - "main" - "release/*" paths: - "frontend/rust-lib/**" - "shared-lib/**" env: CARGO_TERM_COLOR: always jobs: tests: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - id: rust_toolchain uses: actions-rs/toolchain@v1 with: toolchain: 'stable-2022-04-07' - name: Cache Cargo uses: actions/cache@v2 with: path: | ~/.cargo key: ${{ runner.os }}-cargo-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }} - name: Cache Rust uses: actions/cache@v2 with: path: | frontend/rust-lib/target shared-lib/target key: ${{ runner.os }}-rust-rust-lib-share-lib-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }} - name: Install cargo-make working-directory: frontend run: | cargo install cargo-make - name: Setup environment - Flutter uses: subosito/flutter-action@v2 with: channel: 'stable' flutter-version: '3.0.5' - name: Install code-coverage tools working-directory: frontend run: | sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub sudo apt-get update sudo apt-get install -y build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev sudo apt-get install keybinder-3.0 cargo install grcov rustup component add llvm-tools-preview - name: Run tests working-directory: frontend run: cargo make rust_unit_test_with_coverage