Skip to content

Commit cd5537e

Browse files
committed
ci: only notify Slack on drift detection or failure, not on clean runs
1 parent 98b3b5f commit cd5537e

1 file changed

Lines changed: 27 additions & 5 deletions

File tree

.github/workflows/test-drift.yml

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,41 @@ jobs:
6767
if-no-files-found: warn
6868
retention-days: 30
6969

70+
- name: Check previous run status
71+
id: prev
72+
if: always()
73+
run: |
74+
PREV=$(gh run list --workflow="Drift Tests" --branch=main --limit=2 --json conclusion --jq '.[1].conclusion // "unknown"')
75+
echo "conclusion=$PREV" >> $GITHUB_OUTPUT
76+
env:
77+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
78+
7079
- name: Notify Slack
7180
if: always()
7281
run: |
73-
if [ "${{ steps.drift.outputs.exit_code }}" = "2" ]; then
82+
if [ -z "${{ secrets.SLACK_WEBHOOK }}" ]; then exit 0; fi
83+
84+
PREV="${{ steps.prev.outputs.conclusion }}"
85+
NOW="${{ job.status }}"
86+
DRIFT="${{ steps.drift.outputs.exit_code }}"
87+
88+
# Drift detected — always notify
89+
if [ "$DRIFT" = "2" ]; then
7490
EMOJI="🚨"
7591
MSG="*Drift detected* in aimock — providers changed response formats. <https://github.com/CopilotKit/aimock/actions/runs/${{ github.run_id }}|View run>"
76-
elif [ "${{ job.status }}" = "success" ]; then
77-
EMOJI="✅"
78-
MSG="Drift tests passed — all providers match."
79-
else
92+
# Infra failure — always notify
93+
elif [ "$NOW" != "success" ]; then
8094
EMOJI="❌"
8195
MSG="*Drift tests failed* (infra error). <https://github.com/CopilotKit/aimock/actions/runs/${{ github.run_id }}|View run>"
96+
# Recovery: previous was bad, now good — notify once
97+
elif [ "$PREV" = "failure" ]; then
98+
EMOJI="✅"
99+
MSG="Drift tests passing again — all providers match."
100+
# Good → good — stay quiet
101+
else
102+
exit 0
82103
fi
104+
83105
curl -s -X POST "${{ secrets.SLACK_WEBHOOK }}" \
84106
-H "Content-Type: application/json" \
85107
-d "{\"text\": \"${EMOJI} ${MSG}\"}"

0 commit comments

Comments
 (0)