Skip to content

Coverage Report

Coverage Report #56

Workflow file for this run

name: Coverage Report
on:
schedule:
# Run every day at midnight UTC
- cron: '0 0 * * *'
workflow_dispatch:
inputs:
upload_to_codecov:
description: 'Upload results to Codecov'
required: false
default: 'true'
type: boolean
jobs:
coverage:
name: Full Coverage Report
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# ── Frontend ──────────────────────────────────────────────────────────
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: frontend/package-lock.json
- name: Install frontend dependencies
run: npm ci
working-directory: frontend
- name: Frontend coverage
run: npm run test:coverage
working-directory: frontend
# ── Rust ──────────────────────────────────────────────────────────────
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Rust coverage
run: |
cargo llvm-cov \
--manifest-path contracts/stellar-save/Cargo.toml \
--lcov \
--output-path rust-lcov.info \
-- --test-threads=1
# ── Upload ────────────────────────────────────────────────────────────
- name: Upload combined coverage to Codecov
if: ${{ github.event.inputs.upload_to_codecov != 'false' }}
uses: codecov/codecov-action@v4
with:
files: frontend/coverage/lcov.info,rust-lcov.info
flags: combined
name: combined-coverage
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage artifacts
uses: actions/upload-artifact@v4
with:
name: coverage-reports
path: |
frontend/coverage/
rust-lcov.info
retention-days: 90