This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 23d63c2e1d7 Fix Slack failure alerts going silent when several jobs 
fail (#70988)
23d63c2e1d7 is described below

commit 23d63c2e1d7b7ce43716d1d15de88b489e467b68
Author: PoAn Yang <[email protected]>
AuthorDate: Thu Aug 13 21:07:43 2026 +0800

    Fix Slack failure alerts going silent when several jobs fail (#70988)
    
    Signed-off-by: PoAn Yang <[email protected]>
---
 .github/workflows/ci-amd.yml | 11 +++++++----
 .github/workflows/ci-arm.yml | 11 +++++++----
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/ci-amd.yml b/.github/workflows/ci-amd.yml
index c1a298a0818..d1dd65c08df 100644
--- a/.github/workflows/ci-amd.yml
+++ b/.github/workflows/ci-amd.yml
@@ -1217,6 +1217,9 @@ jobs:
           echo "failed-jobs<<EOF" >> "${GITHUB_OUTPUT}"
           echo "${FAILED_JOBS}" >> "${GITHUB_OUTPUT}"
           echo "EOF" >> "${GITHUB_OUTPUT}"
+          # A literal newline would end the double-quoted YAML scalar the 
Slack payload
+          # interpolates job names into, and the action would reject the whole 
payload.
+          echo "failed-jobs-text=${FAILED_JOBS//$'\n'/\\n}" >> 
"${GITHUB_OUTPUT}"
           if [[ -n "${FAILED_JOBS}" ]]; then
             echo "has-failures=true" >> "${GITHUB_OUTPUT}"
           else
@@ -1251,12 +1254,12 @@ jobs:
           # yamllint disable rule:line-length
           payload: |
             channel: "internal-airflow-ci-cd"
-            text: "🚨 Failure Alert: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on branch *${{ github.ref_name 
}}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs 
}}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ 
github.run_id }}|View the failure log>"
+            text: "🚨 Failure Alert: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on branch *${{ github.ref_name 
}}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs-text 
}}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ 
github.run_id }}|View the failure log>"
             blocks:
               - type: "section"
                 text:
                   type: "mrkdwn"
-                  text: "🚨 Failure Alert: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing 
jobs:\n${{ steps.get-failures.outputs.failed-jobs }}\n\n*Details:* 
<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id 
}}|View the failure log>"
+                  text: "🚨 Failure Alert: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing 
jobs:\n${{ steps.get-failures.outputs.failed-jobs-text }}\n\n*Details:* 
<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id 
}}|View the failure log>"
           # yamllint enable rule:line-length
       - name: "Notify Slack (still not fixed)"
         if: steps.notification.outputs.action == 'notify_reminder'
@@ -1267,12 +1270,12 @@ jobs:
           # yamllint disable rule:line-length
           payload: |
             channel: "internal-airflow-ci-cd"
-            text: "🚨🔁 Still not fixed: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on branch *${{ github.ref_name 
}}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs 
}}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ 
github.run_id }}|View the failure log>"
+            text: "🚨🔁 Still not fixed: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on branch *${{ github.ref_name 
}}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs-text 
}}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ 
github.run_id }}|View the failure log>"
             blocks:
               - type: "section"
                 text:
                   type: "mrkdwn"
-                  text: "🚨🔁 Still not fixed: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing 
jobs:\n${{ steps.get-failures.outputs.failed-jobs }}\n\n*Details:* 
<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id 
}}|View the failure log>"
+                  text: "🚨🔁 Still not fixed: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing 
jobs:\n${{ steps.get-failures.outputs.failed-jobs-text }}\n\n*Details:* 
<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id 
}}|View the failure log>"
           # yamllint enable rule:line-length
       - name: "Notify Slack (all tests passing)"
         if: steps.notification.outputs.action == 'notify_recovery'
diff --git a/.github/workflows/ci-arm.yml b/.github/workflows/ci-arm.yml
index 0764ee4496d..a4a4355b556 100644
--- a/.github/workflows/ci-arm.yml
+++ b/.github/workflows/ci-arm.yml
@@ -1206,6 +1206,9 @@ jobs:
           echo "failed-jobs<<EOF" >> "${GITHUB_OUTPUT}"
           echo "${FAILED_JOBS}" >> "${GITHUB_OUTPUT}"
           echo "EOF" >> "${GITHUB_OUTPUT}"
+          # A literal newline would end the double-quoted YAML scalar the 
Slack payload
+          # interpolates job names into, and the action would reject the whole 
payload.
+          echo "failed-jobs-text=${FAILED_JOBS//$'\n'/\\n}" >> 
"${GITHUB_OUTPUT}"
           if [[ -n "${FAILED_JOBS}" ]]; then
             echo "has-failures=true" >> "${GITHUB_OUTPUT}"
           else
@@ -1240,12 +1243,12 @@ jobs:
           # yamllint disable rule:line-length
           payload: |
             channel: "internal-airflow-ci-cd"
-            text: "🚨 Failure Alert: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on branch *${{ github.ref_name 
}}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs 
}}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ 
github.run_id }}|View the failure log>"
+            text: "🚨 Failure Alert: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on branch *${{ github.ref_name 
}}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs-text 
}}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ 
github.run_id }}|View the failure log>"
             blocks:
               - type: "section"
                 text:
                   type: "mrkdwn"
-                  text: "🚨 Failure Alert: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing 
jobs:\n${{ steps.get-failures.outputs.failed-jobs }}\n\n*Details:* 
<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id 
}}|View the failure log>"
+                  text: "🚨 Failure Alert: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing 
jobs:\n${{ steps.get-failures.outputs.failed-jobs-text }}\n\n*Details:* 
<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id 
}}|View the failure log>"
           # yamllint enable rule:line-length
       - name: "Notify Slack (still not fixed)"
         if: steps.notification.outputs.action == 'notify_reminder'
@@ -1256,12 +1259,12 @@ jobs:
           # yamllint disable rule:line-length
           payload: |
             channel: "internal-airflow-ci-cd"
-            text: "🚨🔁 Still not fixed: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on branch *${{ github.ref_name 
}}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs 
}}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ 
github.run_id }}|View the failure log>"
+            text: "🚨🔁 Still not fixed: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on branch *${{ github.ref_name 
}}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs-text 
}}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ 
github.run_id }}|View the failure log>"
             blocks:
               - type: "section"
                 text:
                   type: "mrkdwn"
-                  text: "🚨🔁 Still not fixed: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing 
jobs:\n${{ steps.get-failures.outputs.failed-jobs }}\n\n*Details:* 
<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id 
}}|View the failure log>"
+                  text: "🚨🔁 Still not fixed: Scheduled CI (${{ 
needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing 
jobs:\n${{ steps.get-failures.outputs.failed-jobs-text }}\n\n*Details:* 
<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id 
}}|View the failure log>"
           # yamllint enable rule:line-length
       - name: "Notify Slack (all tests passing)"
         if: steps.notification.outputs.action == 'notify_recovery'

Reply via email to