]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Diagnose failures on developer/* branches as well as master
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 15 May 2026 14:32:32 +0000 (08:32 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 15 May 2026 16:44:11 +0000 (10:44 -0600)
workflow_run jobs only run if the if: condition holds, and previously
that required head_branch == 'master'. Failures on personal
developer/<user> branches were silently skipped even though that's
exactly the place where seeing a diagnosis comment is most useful
(you're iterating on a fix and want the prior failure understood).

Loosen the gate to accept any branch whose name is master or starts
with developer/. Push event + failure conclusion gates stay; PR-event
failures still skip (they get covered by the separate Claude Code
Review path).

.github/workflows/claude-ci-failure-diagnosis.yml

index 394dc2c9c97513cf18188d3b39fd5cffdaec081f..110d252b1ea5c9399a30db34bc71010cfbdbcbe4 100644 (file)
@@ -1,9 +1,10 @@
 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:
@@ -31,14 +32,16 @@ jobs:
   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