on: [push, pull_request] name: Code Coverage permissions: {} jobs: Codecov: name: Code Coverage runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 with: persist-credentials: false - name: Install lcov tools run: sudo apt-get install lcov -y - name: Install Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: nightly-2025-11-27 override: true cache: true components: llvm-tools-preview - name: Install cargo-llvm-cov run: if [[ ! -e ~/.cargo/bin/cargo-llvm-cov ]]; then cargo install cargo-llvm-cov; fi - name: Make coverage directory run: mkdir coverage - name: Test and report coverage run: cargo llvm-cov -q --doctests --branch --all --ignore-filename-regex "(example*|crates/testenv/*)" --all-features --lcov --output-path ./coverage/lcov.info - name: Generate HTML coverage report run: genhtml -o coverage-report.html --ignore-errors unmapped ./coverage/lcov.info - name: Coveralls upload uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} - name: Upload artifact uses: actions/upload-artifact@v7 with: name: coverage-report path: coverage-report.html