|
| 1 | +# Selective-CI selection observability |
| 2 | + |
| 3 | +The scheduled full-regression selector writes a redacted aggregate report for the latest 20 |
| 4 | +completed `ci.yml` push runs on `main`. The window is bounded by run count, not elapsed time, and |
| 5 | +workflow reruns count as completed runs. The JSON report is retained in the scheduled selector |
| 6 | +artifact for 30 days and the same aggregate summary is appended to the Actions step summary. |
| 7 | + |
| 8 | +The report contains profile counts/rates (`focused` and `full`), classifier-reason counts/rates, |
| 9 | +and evidence-disposition counts/rates (`reused`, `rerun`, and `not_applicable`). Evidence reuse is |
| 10 | +reported both per applicable component and per run with at least one reused component. It contains |
| 11 | +no run IDs, source SHAs, changed paths, logs, credentials, or production data. |
| 12 | + |
| 13 | +Empty history produces zeroed counts with an `empty` status. Missing, malformed, oversized, or |
| 14 | +unavailable history produces an `unavailable` status. The report is descriptive only: history |
| 15 | +failure cannot authorize a selection skip, and the scheduled selector continues to use its |
| 16 | +fail-closed full-regression decision. A malformed historical artifact invalidates the aggregate |
| 17 | +report rather than contributing untrusted data. |
| 18 | + |
| 19 | +The top-level ownership test enumerates repository source directories and requires each to have an |
| 20 | +owner prefix in `ci/ownership.json` or an explicit reviewed full-fallback reason in |
| 21 | +`tests_ci/test_top_level_directory_guard.py`. Adding an unreviewed application therefore fails |
| 22 | +the CI contract with instructions for the required graph/list update. |
0 commit comments