Skip to content

DEVEX-1653: badge prod deploys as πŸš‚ RT or ⚑ Hotfix for P0 triage#147

Merged
pdodgen-revparts merged 1 commit into
mainfrom
devex-1653-slack-hotfix-badge
Jul 9, 2026
Merged

DEVEX-1653: badge prod deploys as πŸš‚ RT or ⚑ Hotfix for P0 triage#147
pdodgen-revparts merged 1 commit into
mainfrom
devex-1653-slack-hotfix-badge

Conversation

@pdodgen-revparts

Copy link
Copy Markdown
Contributor

Context

Peace Room ask (2026-07-09): during P0 triage the team needs to spot which prod deploys skipped the RT sign-off flow. Hotfixes see less scrutiny and are more likely culprits, but today the #releases notification looks identical for every prod deploy regardless of whether it came from the Thursday train or a direct-to-main dispatch. Wall of undifferentiated deploys is bad for triage speed.

Change

Adds a Classify deploy type step ahead of send-notification. Detection is pure regex on inputs.image_tag β€” no new inputs, no per-caller changes.

Rule: tag matches -rc.YYYY-MM-DD.N β†’ πŸš‚ RT. Everything else β†’ ⚑ Hotfix.

Verified against real tags from rt-2026-07-09 promote:

Tag Classification
v0.440.10-rc.2026-07-09.7 πŸš‚ RT
v4.7.0-rc.2026-06-18.3 πŸš‚ RT
v12.221.30-rc.2026-06-18.2 πŸš‚ RT (common)
v0.440.6-SHOP-5177-revert-ssr-sidecar.0 ⚑ Hotfix
v0.439.9 ⚑ Hotfix
v1.0.0 ⚑ Hotfix

Message before / after

Before:

*webstore deployed by pdodgen*
    Version: `v0.440.10-rc.2026-07-09.7`
    View the Deployment
    View the Service APM
    View changes since v0.440.6-SHOP-5177-revert-ssr-sidecar.0

After (RT):

πŸš‚ *RT* Β· *webstore deployed by pdodgen*
    Version: `v0.440.10-rc.2026-07-09.7`
    …

After (Hotfix):

⚑ *Hotfix* · *webstore deployed by pdodgen*
    Version: `v0.440.10`
    …

Fallback text field (used for mobile notifications + screen readers) also gets the badge as plain text (πŸš‚ RT Β· webstore deployed).

Scoping notes

  • Prod-only by structural design: this workflow is only invoked from prod deploy paths (deploy-eks.yaml β†’ slack-notification). No env input, no gate needed β€” every message emitted here is a prod message. QA and staging notifications are unaffected.
  • Jellyfish parser compatibility: per the earlier dual-tag-format work, the parser anchors on the Version line and repo name β€” not the header prefix. Added badge doesn't touch either. Safe.
  • Non-RT repos (radmin, etc.): technically will show ⚑ Hotfix on every deploy since they never emit rc tags. Discussed and accepted β€” the label is honest (they're out-of-RT-process) and the badge cost is zero for repos that aren't triage-critical.

Verification plan

Once merged, watch #releases for the next RT-participant deploy (any env change) and confirm the badge renders correctly. If a rendering issue surfaces on mobile Slack, easy to iterate.

Peace Room ask (2026-07-09): during P0 triage the team needs to spot
which prod deploys skipped the RT sign-off flow, since hotfixes see
less scrutiny and are more likely culprits.

Adds a classify-deploy-type step ahead of send-notification. The signal
is already in the image_tag shape β€” RT deploys tag vX.Y.Z-rc.YYYY-MM-DD.N,
everything else (plain semver main deploys, feature-branch tags,
ad-hoc) is treated as hotfix. No new inputs, no per-caller changes.

Message prefix change:
  before: *webstore deployed by pdodgen*
  RT:     πŸš‚ *RT* Β· *webstore deployed by pdodgen*
  Hotfix: ⚑ *Hotfix* · *webstore deployed by pdodgen*

Fallback `text` field (used for notifications + screen readers) gets
the plain-text badge form ("πŸš‚ RT Β· webstore deployed").

Prod-only by structural design: callers only invoke this workflow from
prod deploy paths (deploy-eks.yaml β†’ slack-notification), so every
message emitted here is a prod message. No env gate needed.

Jellyfish parser (per previous dual-tag-format work) anchors on the
version line and repo name, not the header prefix β€” the added badge
does not affect its regex.
@cursor

cursor Bot commented Jul 9, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Notification-only change in a reusable workflow; classification is display-only and does not affect deploy behavior.

Overview
Prod deployment Slack notifications now prefix each message with πŸš‚ RT or ⚑ Hotfix so P0 triage can tell release-train deploys from out-of-band ones at a glance.

A new Classify deploy type step runs before the existing diff and send steps. It regex-matches inputs.image_tag: tags ending in -rc.YYYY-MM-DD.N are labeled release train; all other tags (plain semver, branch builds, etc.) are labeled hotfix. Outputs feed both the Block Kit header and the fallback text field (πŸš‚ RT Β· repo deployed / ⚑ Hotfix Β· …). No new workflow inputs or caller changes.

Reviewed by Cursor Bugbot for commit 474a7a5. Bugbot is set up for automated code reviews on this repo. Configure here.

@pdodgen-revparts
pdodgen-revparts marked this pull request as ready for review July 9, 2026 19:48
@pdodgen-revparts
pdodgen-revparts requested a review from a team as a code owner July 9, 2026 19:48
@pdodgen-revparts
pdodgen-revparts merged commit 699524c into main Jul 9, 2026
2 checks passed
@pdodgen-revparts
pdodgen-revparts deleted the devex-1653-slack-hotfix-badge branch July 9, 2026 19:48
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.

1 participant