Coverage Report #85
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |