docs: update CI workflow and integration test documentation for two-stage pipeline

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-01 16:45:44 +00:00
parent 6c643e9962
commit c100250b23
2 changed files with 63 additions and 16 deletions
+20 -4
View File
@@ -361,12 +361,28 @@ docker volume prune -f
### GitHub Actions - Current Configuration
The DocuElevate CI workflow (`.github/workflows/tests.yaml`) **excludes E2E tests** by default because they require Docker-in-Docker (testcontainers), which requires additional configuration in GitHub Actions.
The DocuElevate CI pipeline (`.github/workflows/ci.yml`) uses a **two-stage test strategy** for fast feedback:
1. **Quick Tests** (`test-quick`) — Runs ~2,790 unit and basic integration tests in ~2 minutes. Excludes tests marked `e2e`, `requires_docker`, `requires_external`, or `slow`. This stage gates the integration tests.
2. **Integration Tests** (`test-integration`) — Runs ~28 Docker-based and external service tests. Only starts after quick tests pass. Uses testcontainers for WebDAV, OAuth, etc.
Both stages use `pytest-timeout` to prevent individual tests from hanging:
- Quick tests: 120 seconds per test, 10-minute job timeout
- Integration tests: 300 seconds per test, 20-minute job timeout
```yaml
- name: Run Tests
# Exclude E2E tests - they require Docker-in-Docker (testcontainers)
run: pytest tests/ -v --cov=app -m "not e2e"
# Quick tests (Stage 2b)
- name: Run Quick Tests
run: >
pytest tests/ -v --timeout=120
-m "not e2e and not requires_docker and not requires_external and not slow"
# Integration tests (Stage 2c) — only after quick tests pass
- name: Run Integration Tests
run: >
pytest tests/ -v --timeout=300
-m "(requires_docker or requires_external or slow) and not e2e"
```
**To run E2E tests locally:**