Commit 40e0206
authored
chore(ci): route spartan/spartan-v5 merge-train notifications to #team-alpha-ci (#24963)
## What
Two related changes for the spartan / spartan-v5 merge-train Slack
notifications:
1. **Route them to `#team-alpha-ci`** instead of `#team-alpha`, so the
team channel stops receiving CI noise.
2. **Stop silently dropping failed Slack posts** in `ci3/slack_notify`,
so a mis-delivered notification (e.g. the bot isn't a member of the
target channel) is visible in the CI log instead of vanishing.
## (1) Notification sites re-routed
| File | Notification | Before → After |
|---|---|---|
| `ci3/merge_train_failure_slack_notify` | "PR merged into …", CI
failure, and dequeue notifications for spartan / spartan-v5 (each also
kicks off a ClaudeBox investigation) | `#team-alpha` → `#team-alpha-ci`
|
| `.github/workflows/merge-train-stale-check.yml` | daily
"`merge-train/spartan…` has not merged into `next`/`v5-next`" stale
alert | `#team-alpha` → `#team-alpha-ci` |
| `.github/workflows/network-healthcheck.yml` | "Starting network
healthcheck …" kickoff + the ClaudeBox `respond_to_user` summary |
`#team-alpha` → `#team-alpha-ci` |
| `scripts/socket-fix-ci.sh` | Socket dependency-vulnerability fix
notification | `#team-alpha` → `#team-alpha-ci` |
| `ci3/merge_train_stale_check` | usage-example comment only | updated
for consistency |
`ci3/run_test_cmd` — flake notifications for spartan / spartan-v5
**already** post to `#team-alpha-ci` (since
[#23219](#23219),
2026-05-12).
## (2) Surface Slack post failures (`ci3/slack_notify`)
Previously the `chat.postMessage` curl ended in `&>/dev/null`, so any
failure — most commonly `not_in_channel` when the bot isn't a member of
the target channel — disappeared with no trace. This is the likely
reason flake notifications to `#team-alpha-ci` were never observed
despite the routing being correct: the posts were failing silently. The
script now captures the API response and logs a clear error to stderr
(`slack_notify: failed to post to Slack channel '<chan>': <error>`) on
any non-`ok` response or curl/network failure. It stays best-effort —
the failure is logged, the caller is not failed.
## Base & backport
Based on **`merge-train/spartan`** (targets `next`), and labeled
**`backport-to-v5-next`** so the same change is carried over to the
`v5-next` line. The `network-healthcheck` and `merge-train-stale-check`
schedules ultimately run from the default branch once this reaches
`next` via the train; the per-train CI scripts
(`merge_train_failure_slack_notify`, `slack_notify`, `socket-fix-ci.sh`)
run from the checked-out train head.
## Left untouched (intentionally)
- `.claude/skills/merge-trains/SKILL.md` team-mapping table,
`ci3/dashboard/.../ci-health-report.html`, `spartan/testnet-runbook.md`
— these reference the owning **team** (`#team-alpha`) or are a manual
human runbook step, not automated CI notifications.
- Other merge-train channel mappings (`#team-bonobos`, `#honk-team`,
`#help-ci`, `#dev-rels`, `#team-fairies`) are unrelated and unchanged.
## Notes
- No new Slack scopes are required — every call uses the same
`SLACK_BOT_TOKEN` + `chat.postMessage`. The bot must be a **member of
`#team-alpha-ci`** for delivery; once (2) lands, a missing membership
shows up as a `not_in_channel` line in the CI log. The **ClaudeBox app**
must also be a member so the healthcheck summary and failure/dequeue
kickoff replies can post.
---
*Created by
[claudebox](https://claudebox.work/v2/sessions/e345f34e9b2da947/jobs/1)
· group: `slackbot` · requested by Santiago Palladino · [Slack
thread](https://aztecprotocol.slack.com/archives/C0AU8BULZHC/p1784902660161109?thread_ts=1784902660.161109&cid=C0AU8BULZHC)*1 parent 76a1caf commit 40e0206
6 files changed
Lines changed: 20 additions & 10 deletions
File tree
- .github/workflows
- ci3
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | 50 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
12 | 17 | | |
13 | 18 | | |
14 | | - | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
| 125 | + | |
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
| |||
0 commit comments