name: Claude CI Failure Diagnosis
-# Fires after a CI workflow finishes on master. If it failed, Claude reads the
-# job logs, classifies the failure (regression / flake / infra / unknown), and
-# posts a diagnostic comment on the offending commit. Diagnosis only - no PRs,
-# no pushes, no edits to the repo.
+# Fires after a CI workflow finishes on master or a developer/* branch.
+# If it failed, Claude reads the job logs, classifies the failure
+# (regression / flake / infra / unknown), and posts a diagnostic comment on
+# the offending commit. Diagnosis only - no PRs, no pushes, no edits to the
+# repo.
on:
workflow_run:
diagnose:
# GitHub doesn't expose an event-level conclusion filter for workflow_run,
# so the workflow fires for every CI completion and this job-level if:
- # filters out anything that isn't a master-push failure. The downside is
- # a "Skipped" entry in the Actions tab for every CI success; the upside
- # is that the alternative (self-delete from inside the job) doesn't work
- # because the API refuses to delete an in-progress run.
+ # filters out anything that isn't a failure on master or one of the
+ # developer/* personal branches. The downside is a "Skipped" entry in
+ # the Actions tab for every CI success; the upside is that the
+ # alternative (self-delete from inside the job) doesn't work because
+ # the API refuses to delete an in-progress run.
if: |
github.repository == 'FreeRADIUS/freeradius-server' &&
github.event.workflow_run.conclusion == 'failure' &&
- github.event.workflow_run.head_branch == 'master' &&
+ (github.event.workflow_run.head_branch == 'master' ||
+ startsWith(github.event.workflow_run.head_branch, 'developer/')) &&
github.event.workflow_run.event == 'push'
runs-on: ubuntu-latest