Yicong-Huang opened a new issue, #4645:
URL: https://github.com/apache/texera/issues/4645

   ### Task Summary
   
   Wire each Build stack (`frontend`, `scala`, `python`, `agent-service`) up to 
Codecov so every PR and `main` push shows a coverage report and a diff against 
the main baseline. Phase 1 is tokenless: report uploads only, no PR comments / 
status check / quality gates yet.
   
   ### Per-stack coverage generation
   
   | stack | tool | command | output |
   |---|---|---|---|
   | scala | `sbt-scoverage` (sbt plugin, native to scala) | `sbt coverage test 
coverageReport` | `**/target/scala-2.13/scoverage-report/scoverage.xml` |
   | python | `pytest-cov` | `pytest --cov=. --cov-report=xml -sv` | 
`coverage.xml` (Cobertura format) |
   | frontend | Karma + Istanbul (Angular's `--code-coverage`) | `nx test 
--code-coverage` | `frontend/coverage/<project>/lcov.info` |
   | agent-service | `bun test --coverage --coverage-reporter=lcov` | 
(built-in) | `agent-service/coverage/lcov.info` |
   
   ### Codecov upload
   
   `codecov/codecov-action` pinned to a specific SHA per [ASF GitHub Actions 
Policy](https://infra.apache.org/github-actions-policy.html), one upload step 
per stack with a distinct `flags:` so the dashboard shows each language 
separately:
   
   ```yaml
   - uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe  # 
v5.5.4
     with:
       files: ./**/scoverage-report/scoverage.xml
       flags: scala
       fail_ci_if_error: false
   ```
   
   Tokenless upload: `CODECOV_TOKEN` not required for public Apache repos in 
v5; rate-limit fallback channel is enough for Phase 1. Phase 2 (separate task) 
opens an INFRA ticket to add the token, which unlocks PR comments / commit 
status / quality-gate enforcement.
   
   ### Where the steps live
   
   The Build workflow (`build.yml`) already triggers on:
   - `push: branches: [main, ci-enable/**, release/**]` — uploaded reports 
become the Codecov baseline
   - `pull_request:` — Codecov compares against the baseline and renders a diff
   
   So adding the coverage generation + upload steps inside each stack's job 
covers both flows in one change. Skipped stacks (per `LABEL_STACKS` from #4640) 
automatically skip their coverage upload.
   
   ### Out of scope (deferred to Phase 2)
   
   - INFRA ticket for `CODECOV_TOKEN`
   - PR comment / commit status / quality-gate (`codecov.yml`) configuration
   - Onboarding to SonarCloud (orthogonal alternative)
   
   ### Priority
   
   P2 – Medium
   
   ### Task Type
   
   - [x] Code Implementation
   - [x] DevOps / Deployment
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to