Skip to content

Coverage Report

Coverage Report #24

Workflow file for this run

# Creates a coverage report and uploads it to Google Cloud Storage.
# Includes unit tests, script tests, and fuzz tests.
# Should only be run on trusted code (such as commits merged to main).
name: Coverage Report
on:
workflow_call:
workflow_dispatch:
jobs:
coverage-report:
timeout-minutes: 60
name: Coverage Report
runs-on: icelake
environment:
name: coverage-report
url: ${{ vars.COVERAGE_URL }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: ./.github/actions/deps
- uses: ./.github/actions/hugepages
with:
count_gigantic: 60
count_huge: 100 # TODO: this is required until we can handle anonymous workspaces and loose huge pages in fddev
- uses: dtolnay/rust-toolchain@1.73.0
- name: Generate all coverage
run: |
sudo prlimit --pid $$ --memlock=-1:-1
MACHINES="linux_clang_x86_64 linux_clang_haswell linux_clang_icelake" \
EXTRAS="llvm-cov" \
COV_REPORT=1 \
contrib/test/ci_tests.sh
- name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v2'
with:
credentials_json: ${{ secrets.FUZZ_SERVICE_ACCT_JSON_BUNDLE }}
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v2'
- name: Upload artifact
run: |
gcloud storage rm -r ${{ vars.COVERAGE_BUCKET }}/ || true
gcloud storage cp -r ./build/cov/html/* ${{ vars.COVERAGE_BUCKET }}/
- name: Upload coverage report to CodeCov
uses: codecov/codecov-action@v5
timeout-minutes: 5
with:
files: build/cov/cov.lcov
name: dist-cov-report
fail_ci_if_error: false
functionalities: search
flags: ci
token: ${{ secrets.CODECOV_TOKEN }}