ci: integrate Qlty coverage reporting#6980
Conversation
Replace Codecov with Qlty coverage uploads in CI workflows. API tests (pytest-cov, Cobertura XML) upload with the `api` tag; frontend unit tests (Jest, LCOV) upload with the `frontend` tag. Coverage tags give per-component visibility in the monorepo. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code review is billed via overage credits. To resume reviews, an organization admin can raise the monthly limit in Settings → Usage.
Once credits are available, reopen this pull request to trigger a review.
|
@davehenton is attempting to deploy a commit to the Flagsmith Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| env_vars: PYTHON | ||
| use_oidc: true | ||
| token: ${{ secrets.QLTY_COVERAGE_TOKEN }} | ||
| files: coverage.xml |
There was a problem hiding this comment.
Coverage file path wrong due to working directory
High Severity
The files paths in both Qlty coverage upload steps are incorrect. defaults.run.working-directory only applies to run steps, not uses steps — the action resolves files relative to the repo root. make test generates api/coverage.xml but files: coverage.xml looks at the root. Similarly, Jest generates frontend/coverage/lcov.info but files: coverage/lcov.info looks at the root. Both uploads will fail to find their coverage files.
Additional Locations (1)
emyller
left a comment
There was a problem hiding this comment.
We appreciate the approach.
Even after looking at https://qlty.sh/, It's not immediately clear to me what the benefits are, e.g. how this looks, how it helps our current workflow. Can you please elaborate?
Also, does it offer a pricing model for OSS?


Summary
apicoverage tagfrontendcoverage tagChanges
.github/workflows/api-pull-request.yml: Replacedcodecov/codecov-action@v5withqltysh/qlty-action/coverage@v2. Upload runs only on Python 3.13 matrix entry (avoids redundant uploads). Removedid-token: writepermission (no longer needed without OIDC). Addedadd-prefix: api/to fix paths relative to repo root..github/workflows/frontend-pull-request.yml: Added--coverageflag to Jest test command. Added Qlty coverage upload step withadd-prefix: frontend/.Manual steps required
QLTY_COVERAGE_TOKENrepository secret:QLTY_COVERAGE_TOKEN, Value: the token from QltyTest plan
QLTY_COVERAGE_TOKENsecret to the repositoryapiandfrontendtags🤖 Generated with Claude Code