Skip to content

feat(report): write the weekly CI report to a file and toast only on a deviation - #21

Merged
Nain9Dev merged 1 commit into
mainfrom
feat/weekly-report
Oct 15, 2026
Merged

Nain9Dev merged 1 commit into
mainfrom
feat/weekly-report

Conversation

@Nain9Dev

Copy link
Copy Markdown
Member

Summary

The CI report and the runner watchdog exist, but the report was only produced when someone asked for
it, and a degradation was found by whoever noticed. This closes the loop: a scheduled task writes the
report every week and speaks up only when the week deviates.

  • report/weekly_report.py reads every private, non-archived repository of the organisation and writes
    ci-report-<date>.md and latest.md in the format of ci_report.py (failure rate by cause, durations,
    queue time per job, snapshot).
  • A deviation puts a "Deviations" section at the top and raises one toast through the desktop's
    notify.ps1: a failure rate above 25 % over at least five runs, a p90 wait for a runner above five
    minutes, or more than a fifth of the failures caused by the infrastructure (at least three failures).
    A healthy week raises nothing. The thresholds are options.
  • A repository that cannot be read is named under "Not read" and skipped.
  • report/install-weekly-report.ps1 registers the task CI weekly report (Mondays 08:00, or at the
    next start), from a normal PowerShell window of the owner's session, with -Remove.
  • README entry.

Verification

  • tests/test_weekly_report.py: 13 tests, written first (the module did not exist); the whole suite
    (179) passes; ruff and actionlint clean; the installer parses without errors.
  • Run once against the real organisation, no toast: it wrote the report and found three real
    deviations, the p90 wait for a runner at gha-local-runners, contrast-viewer and contrast-hub,
    which is the pool saturation of today (the sample still includes jobs from before the light runner).

…a deviation

The report and the runner watchdog existed, but the report was only
produced when someone asked for it. weekly_report.py reads every private,
non-archived repository of the organisation and writes ci-report-<date>.md
and latest.md. A week with a failure rate above 25 percent over at least
five runs, a p90 wait for a runner above five minutes, or an
infrastructure share of failures above a fifth puts the deviations at the
top and raises one toast; a healthy week raises none. An unreadable
repository is named in the report and skipped. install-weekly-report.ps1
registers it as a task for Mondays at 08:00.
@Nain9Dev
Nain9Dev merged commit e0c6506 into main Oct 15, 2026
5 checks passed
@Nain9Dev
Nain9Dev deleted the feat/weekly-report branch October 15, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant