ci: make unattended workflow failures team-visible - #2734
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
How does the new workflow work?This workflow is a small observer that runs after selected CI workflows. It The key GitHub feature is the There is one particularly important property of For each completion, the job first narrows the event to the unattended scopes
Successful runs are recovery signals. Selected failure conclusions are Each rolling incident is identified by a hidden marker containing the GitHub The issue lifecycle is then straightforward:
Updates for the same workflow and scope are queued through Actions concurrency, A new |
Sketch for dash-boarding based on the results produced by the new workflowThe rolling issues can remain the source of truth, with progressively richer 1. Immediate GitHub dashboardThis issue filter shows the currently open rolling incidents: Open the filtered view. The current configuration tracks these scopes:
That is six monitored workflow names but seven possible incident scopes 2. Daily Slack digestA scheduled Slack bot or workspace agent could use a read-only GitHub The minimal architecture is: The agent should be restricted to Two status rules are important:
For a stronger green/amber/red dashboard, the agent can additionally verify A GitHub Project becomes worthwhile only if we later want charts, owners, |
|
Regarding the change in This change is needed, although CUDA Python is already pinned to actionlint's latest release, Keeping The actionlint configuration change is deliberately narrow: it suppresses only the exact For completeness: support for Once queue support is merged and included in an actionlint release, we can update the frozen actionlint pin and remove this temporary suppression. |
This comment has been minimized.
This comment has been minimized.
|
Description
closes #2204
Adds a default-branch
workflow_runmonitor for unattended CI, test, andsecurity workflows. An actionable failure opens a rolling GitHub issue labeled
bug,CI/CD,triage, andci-workflow-health; later failures are added ascomments, and the next successful run in the same trigger scope records
recovery and closes it. Existing rolling issues gain the workflow-health label
the next time they are processed, without replacing any other labels.
The
ci-workflow-healthrepository label has now been created. It is thestable query surface for people, saved issue views, and future dashboard
automation; the hidden issue marker remains the stable incident identity.
Scheduled and main-push health are tracked independently. The monitor ignores
PR, manual, and expected push-cancellation results, deduplicates event
deliveries, queues concurrent updates, and rejects stale completions so
out-of-order delivery cannot leave the incident in the wrong state. It uses the
repository
GITHUB_TOKENand does not require a new notification secret.Validation
pre-commit run --all-filesactionlintwith ShellCheck enabledduplicate delivery, recovery, trigger-scope isolation, stale completion,
ignored cancellation, and duplicate incident recovery
Rollout and live validation
GitHub only dispatches a
workflow_runeventwhen the listening workflow file exists on the repository's default branch.
The YAML, embedded script, and mocked API behavior can be checked on this
branch, but event delivery and the complete open/update/recover lifecycle can
only be tested easily and fully after this workflow exists on
main.This workflow is a leaf observer: no required check, build, test, package,
release, or downstream workflow depends on its result. Nothing depends on this
monitor yet, so bugs in it cannot cause downstream issues. Their impact would
be confined to the monitor's own reporting, such as a missing or extra
rolling-issue update; they cannot change the result of the monitored workflows
or affect their artifacts. An agile rollout is consequently the most efficient
approach: land the monitor, observe real completion events, and refine its
filters or reporting from that feedback.
Checklist