Summary
Replaces the single test job in .gitea/workflows/test.yml with three jobs:
unit-tests — runs pytest tests/unit/ -m "not integration" with coverage (no Docker)
integration-tests — runs pytest -m integration with coverage (requires Docker via testcontainers)
coverage-report — downloads both .coverage artifacts, merges them with coverage combine, and posts the combined report to the PR
Unit and integration jobs run in parallel for faster feedback and clearer failure isolation. The coverage report still reflects the full suite.
Also adds a short note to the README Development section describing the CI layout.
No version-bump prefix — CI/test-only change.
Test plan
Unit tests pass locally (uv run pytest tests/unit/ -m "not integration")
Combined coverage verified locally (coverage combine across separate artifact dirs)
CI passes on this PR (all three jobs green, coverage comment posted)
Summary
Replaces the single test job in .gitea/workflows/test.yml with three jobs:
unit-tests — runs pytest tests/unit/ -m "not integration" with coverage (no Docker)
integration-tests — runs pytest -m integration with coverage (requires Docker via testcontainers)
coverage-report — downloads both .coverage artifacts, merges them with coverage combine, and posts the combined report to the PR
Unit and integration jobs run in parallel for faster feedback and clearer failure isolation. The coverage report still reflects the full suite.
Also adds a short note to the README Development section describing the CI layout.
No version-bump prefix — CI/test-only change.
Test plan
Unit tests pass locally (uv run pytest tests/unit/ -m "not integration")
Integration tests pass locally (uv run pytest -m integration, requires Docker)
Combined coverage verified locally (coverage combine across separate artifact dirs)
CI passes on this PR (all three jobs green, coverage comment posted)
Gitea artifact download is unreliable with v3 actions, so the report job re-runs both suites on one runner after parallel test gates pass.
Co-authored-by: Cursor <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Replaces the single test job in .gitea/workflows/test.yml with three jobs:
unit-tests — runs pytest tests/unit/ -m "not integration" with coverage (no Docker)
integration-tests — runs pytest -m integration with coverage (requires Docker via testcontainers)
coverage-report — downloads both .coverage artifacts, merges them with coverage combine, and posts the combined report to the PR
Unit and integration jobs run in parallel for faster feedback and clearer failure isolation. The coverage report still reflects the full suite.
Also adds a short note to the README Development section describing the CI layout.
No version-bump prefix — CI/test-only change.
Test plan
Unit tests pass locally (uv run pytest tests/unit/ -m "not integration")
Integration tests pass locally (uv run pytest -m integration, requires Docker)
Combined coverage verified locally (coverage combine across separate artifact dirs)
CI passes on this PR (all three jobs green, coverage comment posted)
Test Coverage Report:
Test Coverage Report: