Skip to content

ci: route CI/deploy/release failures to #pipelines only - #83

Merged
mkczarkowski merged 1 commit into
masterfrom
ci/pipelines-only-alerts
Oct 6, 2026
Merged

mkczarkowski merged 1 commit into
masterfrom
ci/pipelines-only-alerts

Conversation

@mkczarkowski

Copy link
Copy Markdown
Collaborator

Why

Operator decision (2026-10-06T07:52Z, ORDER al-orch): CI/build/deploy/release failures go only to #pipelines (SLACK_WEBHOOK_URL). SLACK_ALERTS_WEBHOOK_URL is now #observability; the new #alerting is reserved for prod-alert (Sentry/CF production incidents), not CI.

What changed

  • .github/workflows/ci.yml notify-slack: removed the "Post to #alerting" step (the only use of SLACK_ALERTS_WEBHOOK_URL in this repo).
  • The #pipelines message now flags a failed release prominently instead of saying "see #alerting":
    • fallback text: 🚨 10x-cli release failure
    • header: 🚨 10x-cli — RELEASE FAILURE
    • context: 🚨 release failure: check npm for a version without its tag or GitHub release
  • tests/release-workflow.test.ts: the contract now pins the new state — ci.yml never references SLACK_ALERTS_WEBHOOK_URL, notify-slack has exactly one Slack step, on SLACK_WEBHOOK_URL, unconditional, carrying the release-failure flag and no #alerting mention. Other assertions unchanged (only the Post to #alerting step-name expectation was dropped with the step).
  • CLAUDE.md: updated the one-line Slack routing note.

Nothing in this repo stays on #observability.

Verification

  • bun test tests/release-workflow.test.ts: 16 pass.
  • Deliberate break: re-appending a Post to #alerting step with webhook: ${{ secrets.SLACK_ALERTS_WEBHOOK_URL }} turned the suite red:
    (fail) the notification reports the publication that actually exists > posts every outcome, including a failed release, to #pipelines only
     15 pass
     1 fail
    
    Reverted afterwards.
  • actionlint .github/workflows/ci.yml: clean.
  • node .quality/run.mjs gate: types, lint, cli-skills, unit, workflows, build, binary, smoke all passed; toolchain failed only because the local Bun is 1.3.14 instead of the pinned 1.3.8 (CI uses the pinned version).

🤖 Generated with Claude Code

https://claude.ai/code/session_01RE8gPParNujpvW9ysH84Ju

mkczarkowski added a commit that referenced this pull request Oct 6, 2026
Operator decision 2026-10-06 (via al-orch): CI, build and release failures
go to #pipelines only. Syncs pipeline-slack.mjs from 10x-toolkit #113
(ALERTING → SEVERITY): a failed release now leads the #pipelines message and
its push text with "🚨 RELEASE FAILURE · ". The #alerting step itself is
removed by #83; this branch rebases onto it once it lands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mrk1nt2Ky21Thcv4PxrAzm
Operator decision 2026-10-06T07:52Z: CI, build and release failures go to
#pipelines only. Drop the "Post to #alerting" step (SLACK_ALERTS_WEBHOOK_URL,
now #observability) and flag a failed release with 🚨 in the #pipelines
message instead of "see #alerting". The release workflow contract test now
pins the new state.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RE8gPParNujpvW9ysH84Ju
@mkczarkowski
mkczarkowski force-pushed the ci/pipelines-only-alerts branch from 9111953 to 2474781 Compare October 6, 2026 08:04
@mkczarkowski
mkczarkowski merged commit 8127593 into master Oct 6, 2026
8 checks passed
mkczarkowski added a commit that referenced this pull request Oct 6, 2026
…ck-format

Drops the #alerting step; a failed release is flagged 🚨 RELEASE FAILURE in
the rendered #pipelines message (SEVERITY).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mrk1nt2Ky21Thcv4PxrAzm
mkczarkowski added a commit that referenced this pull request Oct 13, 2026
…mat as 10x-toolkit (#81)

* ci: one #pipelines message that says what failed, where, and what was released

notify-slack renders the message with scripts/pipeline-slack.mjs, the same
file as in 10x-toolkit: status, stages (Tests, Release), the failed job ›
step with up to 3 log lines, rerun attempt, and "also sent to #alerting".
A green release that published nothing is ➖ with the gate's reason; a
publication is 📦 RELEASED v<version>. #alerting is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mrk1nt2Ky21Thcv4PxrAzm

* chore(release): prepare v1.28.1

* ci(slack): sync pipeline-slack.mjs with 10x-toolkit #113

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mrk1nt2Ky21Thcv4PxrAzm

* ci(slack): sync pipeline-slack.mjs with 10x-toolkit #113 (backticks in excerpts)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mrk1nt2Ky21Thcv4PxrAzm

* ci(slack): flag a failed release with 🚨 instead of pointing to #alerting

Operator decision 2026-10-06 (via al-orch): CI, build and release failures
go to #pipelines only. Syncs pipeline-slack.mjs from 10x-toolkit #113
(ALERTING → SEVERITY): a failed release now leads the #pipelines message and
its push text with "🚨 RELEASE FAILURE · ". The #alerting step itself is
removed by #83; this branch rebases onto it once it lands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mrk1nt2Ky21Thcv4PxrAzm

* chore(release): prepare v1.29.1

* chore(release): prepare v1.30.1

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: przeprogramowani <51264853+przeprogramowani@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants