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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - 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@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 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