chore(release): announce beta + prod releases in Slack from the release scripts#556
chore(release): announce beta + prod releases in Slack from the release scripts#556alichherawalla wants to merge 2 commits into
Conversation
…se scripts uat.sh (beta) and release.sh (production/local) now post the release notes to Slack via scripts/notify-slack-release.mjs after the GitHub release is cut, before the notes tempfile is removed. Fail-soft (|| true) so a chat post can never fail a shipped build. The webhook is read from the gitignored .env.keygen (the local secret store that already holds the RevenueCat/Resend/Keygen/Cloudflare tokens), mirroring the SLACK_WEBHOOK_URL repo secret the CI release workflows use. Extracted with a scoped sed for that one key, not a full source, so the other secrets in .env.keygen stay out of the script env. notify-slack-release.mjs no-ops when the webhook is unset, so this is a no-op on machines without it.
|
ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughRelease and beta UAT scripts now notify Slack after creating GitHub releases. They resolve the webhook URL, retrieve the release URL, invoke the shared notifier with release metadata, and ignore notification failures. ChangesRelease notifications
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
release.sh omitted CHANNEL_LABEL, so prod announcements rendered with no channel tag while uat.sh betas showed `beta`. Pass CHANNEL_LABEL=stable for parity — the notify script's documented values are beta | stable.
Code Review ✅ ApprovedIntegrates automatic Slack release notifications into local OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
|



What
Both release scripts now announce the release in Slack after the GitHub release is cut:
scripts/uat.sh(beta → TestFlight + Play internal) — posts aftergh release create, before the notes tempfile is removed.scripts/release.sh(production/local) — same step added before itsrm -f "$NOTES_FILE".Both call the existing
scripts/notify-slack-release.mjsand are fail-soft (|| true) — a chat post can never fail an already-shipped build.Why
The Slack announcer only fired from CI (
release-ios.ymlonworkflow_run). Releases cut locally viauat.sh/release.shposted nothing, so beta ships (which are cut on this machine) never announced. This wires the same notifier into the local path.Secret handling
The webhook is read from the gitignored
.env.keygen— the local secret store that already holds the RevenueCat / Resend / Keygen / Cloudflare tokens — mirroring theSLACK_WEBHOOK_URLrepo secret the CI workflows use. It is extracted with a scopedsedfor that one key (not a fullsource), so the other secrets in.env.keygennever enter the script environment.notify-slack-release.mjsno-ops when the webhook is unset, so this is a no-op on any machine without it.No secrets are committed —
.env.keygen,fastlane/.env, and.env*are all confirmed gitignored.Verification
notify-slack-release.mjsposted the 0.0.103-beta.3 announcement successfully via this webhook during the live release.Summary by CodeRabbit
New Features
Reliability