Repository navigation
E2E Harness Operations Guide
github-actions[bot] edited this page Oct 7, 2026
·
2 revisions
This document defines deterministic execution and cleanup for the tiered E2E harness.
All flow scenarios follow:
provisionexecutepollverify-
cleanup(always runs infinally)
Implementation lives under tests/e2e/flows/, tests/e2e/provisioners/, and tests/e2e/verifiers/.
- Fast required:
python -m pytest -q -m "tier_fast and not quarantined" --maxfail=1 --no-cov - Heavy optional:
python -m pytest -q -m "tier_heavy and not tier_external" --maxfail=1 --durations=25 - External nightly/release:
python -m pytest -q -m "tier_external and cleanup_required" --maxfail=1 --durations=50
Common:
-
TESTO_E2E_RUN_ID(optional; auto-generated if not set) -
TESTO_E2E_KEEP_ON_FAIL(defaultfalse) -
TESTO_E2E_MAX_CLEANUP_ATTEMPTS(default3) -
TESTO_E2E_EXTERNAL_DRY_RUN(trueby default; setfalsein external CI gates)
GitHub external:
TESTO_E2E_GITHUB_TOKENTESTO_E2E_GITHUB_OWNER
GitLab external:
TESTO_E2E_GITLAB_TOKENTESTO_E2E_GITLAB_GROUP_ID-
TESTO_E2E_GITLAB_BASE_URL(optional, defaults tohttps://gitlab.com/api/v4)
- Ephemeral resources are named using
testo-e2e-<run-id>-<provider>-<scenario>. - Artifacts are written under
.artifacts/e2e/<run-id>/. - External CI jobs use
external-e2econcurrency/resource locking.
- Every scenario writes cleanup records through
cleanup_ledger. - Session finalizer emits
.artifacts/e2e/<run-id>/cleanup-ledger.json. - External gates fail if cleanup audit detects any
cleanup_failedrecord.
On failed heavy/external runs, upload:
- logs (
*.log) - summary JSON (
*summary*.json) - API responses (
*api*.json) - screenshots (
*.png, if UI scenarios are enabled)
- Provider tokens must be injected via masked CI secrets/variables only.
- Do not print or serialize tokens into logs/artifacts.
- Keep provider API logic inside
tests/e2e/provisioners/adapters.
Context & Links:
Generated from docs/Processes & Guides/E2E Harness Operations Guide.md. Edit it there; changes made in the wiki are overwritten.
Architecture
CLI Commands
Processes & Guides
- CI-CD Pipeline Setup
- E2E Harness Operations Guide
- GitLab Pages Demo
- Publishing Docker Images
- Publishing to Artifactory
- Publishing to PyPI
- Team Server
Prompts & Snippets
Roadmap & Strategy
Specs & ADRs
- Alerts Where Developers Look - 2026-10-22
- Architecture Consolidation - 2026-10-06
- BehaveX Reports - 2026-10-21
- Command Adapter and JUnit Import - 2026-09-25
- Config JSON Schema - 2026-10-22
- Delta Comparison Policy
- Docs Site - 2026-10-19
- Docs Vault and Wiki Sync - 2026-10-07
- Flaky Test Quarantine - 2026-10-22
- GitHub Action PR Comment - 2026-10-19
- Ingest and Team Server - 2026-10-22
- Interview Readiness Fixes - 2026-10-07
- Library Packaging
- Open Source Features - 2026-10-19
- Phase 3 Delta Comparison Engine Plan
- Phase 3 Unified Dashboard Plan
- Phase 4 BYOK and Failure Analysis
- Phase 5 UI Redesign - Cycles-First Navigation
- Playwright Adapter - 2026-10-19
- Playwright JSON Import - 2026-10-22
- Plugin API - 2026-10-19
- Specs & ADRs
- Repository Pattern - Database-Agnostic Refactor
- UI Restyle - 2026-10-19
Testing Workflows
Vault