■ はじめに
Github Actions が完了したら、Slackで通知するって よくあることをやってみる ぶっちゃけ、以下のサイトがよくかけているので、 こちらを見ながらやった方がいい
https://qiita.com/seratch/items/28d09eacada09134c96c
目次
【0】Slack連携するGithub Actions 【1】前準備1:Slack側の設定 1)Slackアプリの作成 2)Webhook URL生成 【2】前準備2:Github側の設定 1)Secrets の作成 【3】Github Actionsの実装 1)サンプル
【0】Slack連携するGithub Actions
* 色々あるようだが、Slack公式のがよさげ
https://github.com/slackapi/slack-github-action
【1】準備:Slackの設定「Slack アプリ設定の作成」
* 以下の関連記事でもやったがちょっと違うやりかた。
Slack ~ Access Token ~
https://dk521123.hatenablog.com/entry/2021/10/13/092235
Slack ~ Incoming Webhooks ~
https://dk521123.hatenablog.com/entry/2021/10/15/091842
1)Slackアプリの作成
[1] 以下のサイトを開き、「Create an App」ボタン押下
[2] 「From an app manifest」を選択 [3] 「Pick a workspace to develop your app」で 自分のWorkspaceを選択し、「Next」ボタン押下 [4] 「Enter app manifest below」画面において、 以下「app manifest」をまるっとコピペし、「Next」ボタン押下 [5] 「Review summary & create your app」画面で「Create」ボタン押下
app manifest
_metadata: major_version: 1 minor_version: 1 display_information: name: github-action-result-sender features: bot_user: display_name: github-action-result-sender oauth_config: scopes: bot: - incoming-webhook
2)Webhook URL生成
[1] 左ペインにある[Incoming Webhooks] を選択 [2] 「Add New Webhook to workspace」ボタン押下 [3] 「github-action-result-sender の投稿先はどちらにしますか?」で 対象のチャネルを選択し、「許可する」ボタン押下 [4] Webhook URL(https://hooks.slack.com/services/XXXX/XXXX)をコピーしておく
【2】前準備2:Github側の設定
1)Secrets の作成
[1] 対象のGithub リポジトリにアクセスする [2] [Settings]-[Secrets and variables]-[Actions]を選択 [3] 「Repository secrets」欄の「New repository secret」ボタン押下 [4] 以下を入力し、「Add secret」ボタン押下 * Name: SLACK_WEBHOOK_URL * Secret: <コピーしておいたWebhook URL(https://hooks.slack.com/services/XXXX/XXXX)>
【3】Github Actionsの実装
* 以下のサンプルを実行すると、Slackに通知が来るはず => ブラウザからも通知は見れる
通知例
github-action-result-sender アプリ 00:35 :github: Result to build: success Author: @xxxx
1)サンプル
.github/workflows/demo-slack.yml
name: RunDemoForSlack on: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: # Check out theis repo - uses: actions/checkout@v4 # Start a Slack workflow using a webhook trigger # https://github.com/slackapi/slack-github-action - name: Send to Slack id: slack uses: slackapi/slack-github-action@v1.25.0 with: payload: | { "text": ":github: Result to build: ${{ job.status }}\n\n${{ github.event.pull_request.html_url || github.event.head_commit.url }}", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": ":github: Result to build: ${{ job.status }}\n\n${{ github.event.pull_request.html_url || github.event.head_commit.url }}" } }, { "type": "context", "elements": [ { "type": "mrkdwn", "text": "Author: <https://github.com/${{ github.event.sender.login }}|@${{ github.event.sender.login }}>" } ] } ] } env: SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
参考文献
https://qiita.com/seratch/items/28d09eacada09134c96c
関連記事
Github Actions ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/04/142835
Github Actions ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/06/16/151443
Github Actions ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/12/22/195715
Github Actions ~ セキュリティ/Third-Party Github Action ~
https://dk521123.hatenablog.com/entry/2024/04/05/000136
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
Github ~ Webhook 編 ~
https://dk521123.hatenablog.com/entry/2020/01/25/224402
Slack ~ Access Token ~
https://dk521123.hatenablog.com/entry/2021/10/13/092235
Slack ~ Incoming Webhooks ~
https://dk521123.hatenablog.com/entry/2021/10/15/091842