From 602ff49f7b91e5ebf72a6f6c8a7386f1467b35cd Mon Sep 17 00:00:00 2001 From: dresber Date: Tue, 8 Sep 2026 21:08:25 +0000 Subject: [PATCH] fix(notifications): use the run's actual API event, not gitea.event_name notifications.yml is invoked via workflow_call from the caller workflow, so inside this job gitea.event_name reports "workflow_call" rather than the top-level event (push/schedule/...) that actually started the run. Comparing that against the Actions API's per-run event field (which reports the real trigger) never matched, so previous_conclusion always stayed "unknown" and healed notifications never fired. Now the current run's real event is captured from the API response itself and used for the comparison, falling back to gitea.event_name only if the current run isn't found in the scanned history. Co-Authored-By: Claude Sonnet 5 --- .gitea/workflows/notifications.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/notifications.yml b/.gitea/workflows/notifications.yml index 1f2adda..e8192da 100644 --- a/.gitea/workflows/notifications.yml +++ b/.gitea/workflows/notifications.yml @@ -40,12 +40,19 @@ jobs: repo = "${{ gitea.repository }}" current_run_number = int("${{ gitea.run_number }}") current_branch = "${{ gitea.ref_name }}" + # gitea.event_name is unreliable here: notifications.yml is itself called via + # workflow_call from the caller workflow, so inside this job it reports + # "workflow_call" rather than the top-level event (push/schedule/...) that + # actually started the run. The Actions API reports the real triggering event + # per run, so use that for the current run instead of trusting this context + # value. It is kept only as a last-resort fallback if the current run can't be + # found in the scanned history at all. current_event = "${{ gitea.event_name }}" token = os.environ["API_GITEA_TOKEN"] print(f"Current run number: {current_run_number}") print(f"Current branch: {current_branch}") - print(f"Current event: {current_event}") + print(f"Current event (context, may be inaccurate): {current_event}") previous = "unknown" # Scheduled runs can push the prior run for this branch/event beyond the @@ -87,9 +94,10 @@ jobs: f"event={event}" ) - # aktuellen Run überspringen + # aktuellen Run überspringen, aber dessen echtes Trigger-Event merken if str(run_number) == str(current_run_number): - print(" -> skipping current run") + current_event = event or current_event + print(f" -> skipping current run (actual event={event})") continue # nur abgeschlossene Runs