Skip to content

Alert on master breakage #5

Alert on master breakage

Alert on master breakage #5

name: Alert on master breakage
on:
workflow_run:
workflows:
- 'Selfhosted Studio E2E Tests'
- 'Studio Unit Tests & Build Check'
branches: [master]
types:
- completed
permissions:
contents: read
actions: read
jobs:
notify:
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
runs-on: ubuntu-latest
steps:
- name: Send Slack alert
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DASHBOARD_WEBHOOK_URL }}
WORKFLOW_NAME: ${{ github.event.workflow_run.name }}
WORKFLOW_URL: ${{ github.event.workflow_run.html_url }}
COMMIT_SHA: ${{ github.event.workflow_run.head_sha }}
COMMIT_MESSAGE: ${{ github.event.workflow_run.head_commit.message }}
COMMIT_AUTHOR: ${{ github.event.workflow_run.head_commit.author.name }}
REPO_URL: https://github.com/${{ github.repository }}
run: |
SHORT_SHA="${COMMIT_SHA:0:7}"
FIRST_LINE=$(echo "$COMMIT_MESSAGE" | head -1)
PAYLOAD=$(jq -n \
--arg workflow_name "$WORKFLOW_NAME" \
--arg workflow_url "$WORKFLOW_URL" \
--arg commit_sha "$COMMIT_SHA" \
--arg short_sha "$SHORT_SHA" \
--arg commit_msg "$FIRST_LINE" \
--arg author "$COMMIT_AUTHOR" \
--arg repo_url "$REPO_URL" \
'{
text: ":rotating_light: \($workflow_name) failed on master",
blocks: [
{
type: "header",
text: {
type: "plain_text",
text: ":rotating_light: master is broken"
}
},
{
type: "section",
text: {
type: "mrkdwn",
text: "*Workflow:* <\($workflow_url)|\($workflow_name)>\n*Commit:* <\($repo_url)/commit/\($commit_sha)|\($short_sha)> \($commit_msg)\n*Author:* \($author)"
}
}
]
}')
curl -f -X POST "$SLACK_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d "$PAYLOAD"