Skip to content

ci(frontend-deploy): report every deploy outcome in one Slack message - #8371

Draft
talissoncosta wants to merge 1 commit into
mainfrom
fix/frontend-deploy-slack-noise
Draft

ci(frontend-deploy): report every deploy outcome in one Slack message#8371
talissoncosta wants to merge 1 commit into
mainfrom
fix/frontend-deploy-slack-noise

Conversation

@talissoncosta

@talissoncosta talissoncosta commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Thanks for submitting a PR! Please check the boxes below:

  • I have read the Contributing Guide.
  • I have added information to docs/ if required so people know about the feature.
  • I have filled in the "Changes" section below.
  • I have filled in the "How did you test this code" section below.

Changes

#frontend-deploy gets three messages per deploy: a start card and a terminal card from the GitHub Slack app, plus our own notification. The app's ✅ succeeded card duplicates ours with less detail, so roughly two thirds of the channel is noise.

Our notification only fired on success, so unsubscribing the app would have lost the failed and cancelled cases. This moves them here.

  • notify-production-deploy runs on always() and reports deployed, failed, or cancelled. It depends on the test jobs so it can tell a real failure from a supersede.
  • The card carries the run start time and duration, which replaces the app's start ping.
  • Cancelled gets its own wording. Job level concurrency stops a run whenever the next commit lands on main, so most cancellations mean superseded, and the app's red cross read as a failure.
  • Reading the run start time needs actions: read.

Once merged and confirmed, the app subscription needs removing from the channel by hand:

/github unsubscribe Flagsmith/flagsmith workflows:{name:"Frontend Deploy to Production" event:"push" branch:"main"}

How did you test this code?

Ran the jq program directly for each status and checked the rendered blocks, including the degraded path where the start time is unavailable and both timing fields drop out. Checked the status mapping against the seven needs.*.result combinations that can occur. Both files parse as YAML.

Not exercised end to end, and it cannot be until it is on main. One thing to watch on the first cancelled run: that always() runs the job when run-tests is cancelled by its own concurrency group, rather than the job being cancelled with it. That is the only behaviour I could not verify locally, and the reason this is a draft.

The deploy channel carried three messages per deploy: a run started card and
a succeeded card from the GitHub Slack app, plus this notification. The
succeeded card said nothing this one does not already say, with less detail.

Dropping the app subscription would have lost the two states this job never
covered, so cover them here instead. The job now runs on always() and reports
deployed, failed, or cancelled, and the outcome message carries the run start
time and duration so a separate start notification is not needed either.

Cancellation gets its own wording rather than the red cross the app used for
it. Job level concurrency stops a run in progress whenever the next commit
lands on main, so most cancellations are a supersede and nothing is wrong.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

3 Skipped Deployments
Project Deployment Actions Updated (UTC)
docs Ignored Ignored Aug 25, 2026 8:58pm
flagsmith-frontend-preview Ignored Ignored Aug 25, 2026 8:58pm
flagsmith-frontend-staging Ignored Ignored Aug 25, 2026 8:58pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the ci-cd Build, test and deployment related label Aug 25, 2026
@codecov

codecov Bot commented Aug 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.79%. Comparing base (b9b32ba) to head (ccd5061).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8371   +/-   ##
=======================================
  Coverage   98.79%   98.79%           
=======================================
  Files        1616     1616           
  Lines       65283    65283           
=======================================
  Hits        64499    64499           
  Misses        784      784           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-cd Build, test and deployment related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant