feat: add Discord notifications for CI/CD pipeline status
Some checks failed
CI/CD Pipeline / Integration Tests (push) Blocked by required conditions
CI/CD Pipeline / Deployment Summary (push) Blocked by required conditions
CI/CD Pipeline / Discord Notification (Success) (push) Blocked by required conditions
CI/CD Pipeline / Discord Notification (Failure) (push) Blocked by required conditions
CI/CD Pipeline / Backend - Build, Test & Push (push) Has been cancelled
CI/CD Pipeline / Frontend - Build, Test & Push (push) Has been cancelled
Some checks failed
CI/CD Pipeline / Integration Tests (push) Blocked by required conditions
CI/CD Pipeline / Deployment Summary (push) Blocked by required conditions
CI/CD Pipeline / Discord Notification (Success) (push) Blocked by required conditions
CI/CD Pipeline / Discord Notification (Failure) (push) Blocked by required conditions
CI/CD Pipeline / Backend - Build, Test & Push (push) Has been cancelled
CI/CD Pipeline / Frontend - Build, Test & Push (push) Has been cancelled
Added two notification jobs that send Discord webhooks: - notify-success: Sends a green embed when pipeline succeeds - notify-failure: Sends a red embed when pipeline fails Notifications include: - Repository and branch information - Commit SHA with clickable link - Docker image names (backend & frontend) - Link to workflow run for debugging Requires DISCORD_WEBHOOK_URL secret to be configured in repository settings. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
d8007c0887
commit
4125c9db18
114
.github/workflows/ci.yml
vendored
114
.github/workflows/ci.yml
vendored
@ -227,17 +227,123 @@ jobs:
|
||||
echo "## 🚀 Deployment Summary" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Backend Image" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Registry: \`${{ env.REGISTRY }}/backend\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Registry: \`${{ env.REGISTRY }}/xpeditis-backend\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Branch: \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Commit: \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Frontend Image" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Registry: \`${{ env.REGISTRY }}/frontend\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Registry: \`${{ env.REGISTRY }}/xpeditis-frontend\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Branch: \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Commit: \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Pull Commands" >> $GITHUB_STEP_SUMMARY
|
||||
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
|
||||
echo "docker pull ${{ env.REGISTRY }}/backend:${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "docker pull ${{ env.REGISTRY }}/frontend:${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "docker pull ${{ env.REGISTRY }}/xpeditis-backend:${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "docker pull ${{ env.REGISTRY }}/xpeditis-frontend:${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
# ============================================
|
||||
# Discord Notification - Success
|
||||
# ============================================
|
||||
notify-success:
|
||||
name: Discord Notification (Success)
|
||||
runs-on: ubuntu-latest
|
||||
needs: [backend, frontend]
|
||||
if: success()
|
||||
|
||||
steps:
|
||||
- name: Send Discord notification
|
||||
run: |
|
||||
curl -H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"embeds": [{
|
||||
"title": "✅ CI/CD Pipeline Success",
|
||||
"description": "Deployment completed successfully!",
|
||||
"color": 3066993,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Repository",
|
||||
"value": "${{ github.repository }}",
|
||||
"inline": true
|
||||
},
|
||||
{
|
||||
"name": "Branch",
|
||||
"value": "${{ github.ref_name }}",
|
||||
"inline": true
|
||||
},
|
||||
{
|
||||
"name": "Commit",
|
||||
"value": "[${{ github.sha }}](${{ github.event.head_commit.url }})",
|
||||
"inline": false
|
||||
},
|
||||
{
|
||||
"name": "Backend Image",
|
||||
"value": "`${{ env.REGISTRY }}/xpeditis-backend:${{ github.ref_name }}`",
|
||||
"inline": false
|
||||
},
|
||||
{
|
||||
"name": "Frontend Image",
|
||||
"value": "`${{ env.REGISTRY }}/xpeditis-frontend:${{ github.ref_name }}`",
|
||||
"inline": false
|
||||
},
|
||||
{
|
||||
"name": "Workflow",
|
||||
"value": "[${{ github.workflow }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})",
|
||||
"inline": false
|
||||
}
|
||||
],
|
||||
"timestamp": "${{ github.event.head_commit.timestamp }}",
|
||||
"footer": {
|
||||
"text": "Xpeditis CI/CD"
|
||||
}
|
||||
}]
|
||||
}' \
|
||||
${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
|
||||
# ============================================
|
||||
# Discord Notification - Failure
|
||||
# ============================================
|
||||
notify-failure:
|
||||
name: Discord Notification (Failure)
|
||||
runs-on: ubuntu-latest
|
||||
needs: [backend, frontend]
|
||||
if: failure()
|
||||
|
||||
steps:
|
||||
- name: Send Discord notification
|
||||
run: |
|
||||
curl -H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"embeds": [{
|
||||
"title": "❌ CI/CD Pipeline Failed",
|
||||
"description": "Deployment failed! Check the logs for details.",
|
||||
"color": 15158332,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Repository",
|
||||
"value": "${{ github.repository }}",
|
||||
"inline": true
|
||||
},
|
||||
{
|
||||
"name": "Branch",
|
||||
"value": "${{ github.ref_name }}",
|
||||
"inline": true
|
||||
},
|
||||
{
|
||||
"name": "Commit",
|
||||
"value": "[${{ github.sha }}](${{ github.event.head_commit.url }})",
|
||||
"inline": false
|
||||
},
|
||||
{
|
||||
"name": "Workflow",
|
||||
"value": "[${{ github.workflow }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})",
|
||||
"inline": false
|
||||
}
|
||||
],
|
||||
"timestamp": "${{ github.event.head_commit.timestamp }}",
|
||||
"footer": {
|
||||
"text": "Xpeditis CI/CD"
|
||||
}
|
||||
}]
|
||||
}' \
|
||||
${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user