Repository navigation
feat(report): write the weekly CI report to a file and toast only on a deviation - #21
Merged
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.pyreads every private, non-archived repository of the organisation and writesci-report-<date>.mdandlatest.mdin the format ofci_report.py(failure rate by cause, durations,queue time per job, snapshot).
notify.ps1: a failure rate above 25 % over at least five runs, a p90 wait for a runner above fiveminutes, 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.
report/install-weekly-report.ps1registers the taskCI weekly report(Mondays 08:00, or at thenext start), from a normal PowerShell window of the owner's session, with
-Remove.Verification
tests/test_weekly_report.py: 13 tests, written first (the module did not exist); the whole suite(179) passes;
ruffandactionlintclean; the installer parses without errors.deviations, the p90 wait for a runner at
gha-local-runners,contrast-viewerandcontrast-hub,which is the pool saturation of today (the sample still includes jobs from before the light runner).