e68b876689
## What `report-success` (the **Release Succeeded** Slack notification) silently skips on releases that don't bump the CLI — even when the release publishes successfully. ## Why The job used: ```yaml report-success: needs: [preflight, publish] if: needs.publish.result == 'success' ``` That `if` contains no status-check function (`always()`, `!cancelled()`, `failure()`, `success()`). When `cli-tests` is skipped — which happens whenever the changeset releases the SDKs but not the CLI (`cli-tests` has `if: needs.preflight.outputs.cli == 'true'`) — GitHub Actions **skip propagation** cascades through the dependency graph and skips `report-success` too, before its condition is meaningfully evaluated. So no success notification fires. The `publish` job avoids this exact trap because its `if` already starts with `(!cancelled())`, which is why `publish` runs (and succeeds) regardless. `report-success` just lacked the same guard. ### Evidence `report-success` skipped **iff** `cli-tests` skipped, across recent releases: | Run | `cli-tests` | `report-success` | |-----|-------------|------------------| | [28189674867](https://github.com/e2b-dev/E2B/actions/runs/28189674867) | skipped | **skipped** ❌ | | 27978450216 | skipped | **skipped** ❌ | | 28150204186 | ran ✅ | fired ✅ | | 27843301597 | ran ✅ | fired ✅ | ## Fix ```diff report-success: needs: [preflight, publish] - if: needs.publish.result == 'success' + if: (!cancelled()) && needs.publish.result == 'success' ``` `(!cancelled())` disables skip propagation so the condition is always evaluated, while `needs.publish.result == 'success'` preserves the original intent: notify only when the publish actually succeeded. `report-failure` (`if: failure()`) and `report-start` are unaffected — both already evaluate correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>