name: codecov env: # It's really `--all-features`, but not adding the mutually exclusive features from rkyv ALL_NON_EXCLUSIVE_FEATURES: --features "default unstable-locales rkyv-64 rkyv-validation serde arbitrary" on: push: branches: [main, 0.5.x] pull_request: jobs: # Run code coverage using cargo-llvm-cov then upload to codecov.io job_code_coverage: name: llvm-cov runs-on: ubuntu-latest environment: Coverage env: CARGO_TERM_COLOR: always steps: - uses: actions/checkout@v4 # nightly is required for --doctests, see cargo-llvm-cov#2 - name: Install Rust (nightly) run: rustup update nightly - name: Install cargo-llvm-cov uses: taiki-e/install-action@cargo-llvm-cov - name: Generate code coverage run: cargo +nightly llvm-cov ${{ env.ALL_NON_EXCLUSIVE_FEATURES }} --workspace --lcov --doctests --output-path lcov.info - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: files: lcov.info fail_ci_if_error: true