GitHub ActionsからSlack通知をする
公開日: 2024/05/01
概要
GitHub ActionsでSlack通知をする方法を調べところ、 公式が提供しているワーフクローがあったため使ってみる。
流れ
Incoming WebhookのURLを取得したところから始める。
- Slackでアプリを作成する
- Incoming WebHookを有効にしてURLを発行する
- GitHub Actions設定をいれる
ワークフロー
以下のように slackapi/[email protected]
を実行する。
この際にpayloadでymlに直接JSONを記載することもできるが(参考)、
行数が多いのでファイルから取得するようにした。
公式を見落としていただけだが、SLACK_WEBHOOK_TYPE
を指定しないと
送信時に400エラーを返されて通知できないので注意する。
name: Slack Notification
on: push
jobs:
test:
runs-on: ubuntu-latest
env:
TZ: 'Asia/Tokyo'
steps:
- uses: actions/checkout@v2
- name: Send GitHub Action trigger data to Slack workflow
id: slack
uses: slackapi/slack-github-[email protected]
with:
payload-file-path: "./.github/assets/payload.json"
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
別に作成したJSONファイルは以下のもの。 BlockKitを活用すると手書きでJSONを書かなくてよくなる。
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "This is a header block",
"emoji": true
}
},
{
"type": "context",
"elements": [
{
"type": "plain_text",
"text": "Author: K A Applegate",
"emoji": true
}
]
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "xxxxxxx"
}
}
]
}
無事に送信できることを確認した。