name: Code Coverage
on:
push:
branches:
- main
schedule:
- cron: '0 5 * * MON' workflow_dispatch:
permissions:
contents: read
env:
RUST_BACKTRACE: full
CI: true
CARGO_INCREMENTAL: '0'
jobs:
coverage:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4
- name: "Install llvm-tools-preview"
run: rustup component add llvm-tools-preview
- name: "Install cargo-llvm-cov"
run: cargo install cargo-llvm-cov
- name: "Generate code coverage"
run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
- name: Cache npm tools
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae with:
path: scripts/npm-tools/node_modules
key: ${{ runner.os }}-npm-tools-${{ hashFiles('scripts/npm-tools/*') }}
- name: "Install datadog-ci"
run: npm ci --prefix scripts/npm-tools
- name: "Add npm tools to PATH"
run: echo "${{ github.workspace }}/scripts/npm-tools/node_modules/.bin" >> $GITHUB_PATH
- uses: ./.github/actions/dd-token
- name: "Upload coverage to Datadog"
env:
DD_SITE: datadoghq.com
DD_ENV: ci
run: datadog-ci coverage upload lcov.info