ci: separate lint, test, and coverage into parallel jobs#35
Merged
Conversation
ba8e5df to
292cdf2
Compare
292cdf2 to
0ef5979
Compare
Split the single test job in ci.yml (which ran lint + install + tests sequentially) into three independent parallel jobs: - lint — only needs ruff via uvx, skips package installation (faster) - test — builds/installs the wheel and runs pytest - total-coverage — runs pytest --cov, posts Total Coverage and Patch Coverage checks to GitHub (gated on pull_request events) The Total Coverage check now enforces an 80% threshold (previously always success) and includes a per-file coverage report table in its summary, so the full report is visible directly on the PR checks without digging into job logs. Patch Coverage keeps its 80% threshold. Consolidated the standalone test-coverage.yml workflow into the total-coverage job and deleted the old file. Pre-commit behavior is unchanged locally — everything still runs together via the pytest hook.
0ef5979 to
2441ba3
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Split the single
testjob inci.yml(which ran lint + install + tests sequentially) into three independent parallel jobs:ruffviauvx, skips package installation (faster)pytestpytest --covand reports coverage (gated onpull_requestevents)Total Coverage
The
total-coveragejob is the total coverage check — no separate API-created check run. The per-file coverage report and total percentage are written to$GITHUB_STEP_SUMMARY(visible on the job's summary page), and the job fails if total coverage drops below 80%.Patch Coverage
Remains a dedicated GitHub Check Run (created via the API) with its own 80% threshold, since it measures a distinct metric (coverage of lines changed in the PR).
Consolidation
Merged the standalone
test-coverage.ymlworkflow into thetotal-coveragejob and deleted the old file. All CI now lives in one workflow.Pre-commit behavior is unchanged locally — everything still runs together via the
pytesthook.