| name: Rust Coverage |
| on: |
| pull_request: |
| types: [opened, reopened, synchronize] |
| paths: |
| - 'rust/**' |
| push: |
| branches: |
| - master |
| jobs: |
| calculate-coverage: |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout repository |
| uses: actions/checkout@v2 |
| with: |
| submodules: true |
| |
| - name: Install rust toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: stable |
| override: true |
| |
| - name: Install Protoc |
| uses: arduino/setup-protoc@v1 |
| with: |
| version: '3.x' |
| repo-token: ${{ secrets.GITHUB_TOKEN }} |
| |
| - name: Install cargo-llvm-cov |
| uses: actions-rs/cargo@v1 |
| with: |
| command: install |
| args: cargo-llvm-cov |
| |
| - name: Generate code coverage |
| working-directory: ./rust |
| run: cargo llvm-cov --all-features --workspace --ignore-filename-regex pb/ --codecov --output-path codecov.json |
| |
| - name: Upload to codecov.io |
| uses: codecov/codecov-action@v3 |
| with: |
| files: ./rust/codecov.json |
| flags: rust |
| verbose: true |
| fail_ci_if_error: true |