This repository has been archived on 2026-11-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
qqq-orb/docs/BUSINESS-E2E-ROLLOUT.md
james.maesandOpenAI Codex 071dc3ae29 feat: centralize remaining release gates and estate policy
Preserve aggregate-app GA/RC validators in the shared worker, add exact-source Circle evidence, and own business E2E and workflow lint centrally. Audit explicit managed branches and verified no-CI exceptions without inventing merge checks.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-20 06:59:42 -05:00

2.1 KiB

Business-platform E2E ownership

The reusable .github/workflows/business-e2e.yml preserves the exact audited jobs from QRun-IO/qqq-business-platform commit 8af799fce97e972f81f195df969d79a959f71dbc, including actual Compose services, blocking Playwright tests, deployment dependency, alerts, summaries, artifacts, failure logs and unconditional cleanup. Tool versions and environment values are unchanged. The optional existing alert secret is declared and forwarded explicitly. No new credential is introduced.

The tiny caller is generated with:

python src/scripts/generate_auxiliary_workflow.py business-e2e --ref <IMMUTABLE40SHA>

It belongs at the SAME consumer path .github/workflows/e2e.yml. Events, schedule, manual dispatch and read permission remain identical. The caller owns the existing concurrency group; the worker has no second copy that could cancel its own caller. The worker is workflow_call only and cannot run its own schedule.

Disabled coverage stays disabled

The existing consumer workflow is disabled_inactivity, as reported by the release owner. This source extraction does not enable, trigger, dispatch or alter settings. Before and after any later caller replacement, read back that same workflow ID/path and state; stop if disabled status changed. Do not call an enable API, rename the workflow path, or treat a source-only PR as coverage restoration. Any intentional reactivation is a separate authorized operation requiring working live-service proof.

This centralizes code ownership; disabled E2E coverage remains an explicit limitation. Likewise, tools/no-ci-policy.json records audited CI absence, not product readiness, quality approval or a claim that tests have passed.

Local contract tests compare every job/step to an immutable fixture and verify events, permissions, explicit secret mapping, pinned worker and concurrency ownership:

python3 -m unittest discover -s tests -p test_business_e2e.py -v
actionlint .github/workflows/business-e2e.yml

Hosted E2E success is not claimed. Consumer/settings changes are outside this patch.