github actionsからslack通知する

github actionsのからslackにメッセージをポストする。

ワークフローの成功可否を能動的に監視しなくても良くなる。

結論

name: Slack Post

on:
  workflow_dispatch

jobs:
  slack:
    name: slack post
    runs-on: ubuntu-latest

    steps:
      - name: checkout
        uses: actions/checkout@v3
      - name: slack notification
        uses: rtCamp/action-slack-notify@v2
        env:
          SLACK_CHANNEL: notify
          SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
          SLACK_USERNAME: Github Actions
          SLACK_TITLE: Workflow
          SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
          SLACK_MESSAGE: slackに表示するメッセージ

詳細

slackでIncoming Webhookを追加して、Webhook URLをシークレットに登録する

Incoming Webhookの追加はググること。

シークレットはリポジトリのSettings→Actions→New repository secretから設定。

yamlでは secrets. で参照する。

SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

envはカスタマイズ可能

slack通知は https://github.com/rtCamp/action-slack-notify を利用している。

メッセージは色々カスタマイズできるので、READMEで確認してほしい。

サンプル:

まとめ

今回は rtCamp/action-slack-fnotify を使ったけど、もっとメッセージを自由にカスタマイズしたいならslackのWebhook URL使ってもいいと思う。

でも、私はこのライブラリが好き。