ci: embed immediate Slack failure notification in release pipelines (alt to #6337)#6354
Merged
Merged
Conversation
375bf13 to
85cb484
Compare
sirutBuasai
reviewed
Jul 7, 2026
85cb484 to
291975c
Compare
Alternative to the scheduled failure digest (#6337): notify Slack the moment an auto-release run fails — no scan timing, no dedup logic, and a failed rerun re-posts. Shared logic lives in a composite action (.github/actions/ notify-slack-failure) so the 10 *.pipeline.yml orchestrators only add a thin notify-failure job that needs every pipeline job, runs on failure(), and calls the action. Guarded on the same release context as release-gate (main + autorelease/dispatch-release ref + inputs.release), so PR runs never notify. Payload is {workflow, url}; the label strips the 'Auto Release - ' prefix and adds the config basename (one workflow releases several configs via matrix). Webhook secret: SLACK_RELEASE_FAILURE_WEBHOOK_URL.
291975c to
d4bef1c
Compare
sirutBuasai
approved these changes
Jul 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
This is the embedded alternative to the scheduled failure digest in #6337, per the design discussion (G's proposal). Both target the same problem — auto-release workflows fail silently — and use the same
SLACK_RELEASE_FAILURE_WEBHOOK_URLsecret, so the team can compare and pick one.What this does
Shared logic lives in a composite action,
.github/actions/notify-slack-failure. Each of the 10*.pipeline.ymlorchestrators adds a thinnotify-failurejob thatneedsevery job in the pipeline, runs onif: failure() && <release context>, and calls the action — so any failed job posts to Slack immediately.Per-pipeline addition is ~20 lines (job wiring only); the curl/jq logic is defined once in the action.
Guard (same release context as
release-gate):→ fires only for autorelease / dispatch-release runs on
main; PR runs never notify.Why embedded (vs. the #6337 cron digest)
Trade-off: emits one message per failed config (no batching), so a bad night is noisier than a digest. Given failures are ~0–2/day this is acceptable; if noise becomes real we can add a Slack-side throttle.
Payload / message
The action posts the workflow label + run URL (no
count— one run per message):{ "workflow": "PyTorch 2.12 EC2 (2.12-ec2-cuda.yml)", "url": "https://github.com/aws/deep-learning-containers/actions/runs/111" }The label strips the
Auto Release -prefix and adds the config basename (one workflow releases several configs via matrix). Rendered with a Slack template of🚨 {{workflow}} → {{url}}:Configuration
webhook-urlis a required action input, wired to theSLACK_RELEASE_FAILURE_WEBHOOK_URLsecret. If the secret is unset the notify job fails loudly (::error::+ non-zero exit) rather than silently skipping, so a misconfiguration is visible instead of dropping alerts.Testing