🚀

GitHubActionsからSlackへ任意のメッセージ連携をやってみました

2023/09/17に公開

やってみた

  1. Slack公式サイトでWebHookを作成します。
    ※リンクは手順短縮のためincoming-webhookです。セキュリティ的に非推奨ですので業務で使う分にはslackbotの手順からwebhookを取得しましょう。

  2. 発行したURL(http:/xxxx)をGitHubの設定からシークレット登録します。

  3. GitHub Actionsのコードを作り、Pushします。

/.github/workflaws/slack.yaml
name: Slack Incoming Webhooks
on:
  push:
    branches: [ main ]
  pull_request:

env:
    SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
    SLACK_USERNAME: DeployBot
    SLACK_CHANNEL: 20230916-githubactions
    SLACK_ICON: https://avatars.githubusercontent.com/u/44036562?s=200&v=4
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
        - name: Slack Notification on Success
          uses: rtCamp/action-slack-notify@v2
          env:
            SLACK_TITLE: Message
            SLACK_MESSAGE: 'Deploy Success :rocket:'
            SLACK_COLOR: good

rtCamp様のaction-slack-notifyを使わせて頂きました。こちらMITライセンスなので商用利用が可能です。
https://github.com/rtCamp/action-slack-notify/tree/master

  1. 動かしてみます。他の環境変数に関しての動作はREADME.mdをみて、それでもわからなかったらmain.goを読むと簡単にわかると思います。

さいごに

このActionsはかなりシンプルかつ直感的な使用感なところがおすすめと思っています。
そのまま使うのが気になる方はMITを意識してフォークしてもよいでしょう(200人以上が既にフォークしています)
メッセージに正常ログやエラーログを出したい方。メインとなるGitHub Actionsの結果を任意メッセージでSlack通知したい方に良さそうかなと思います。

利用される際はSlack社が公開しているslackapi/slack-github-actionもありますので比較検討されるとよいでしょう。
シンプルかつ直感的という点を重要視し、本記事ではrtCamp/action-slack-notifyを選択しています。

Discussion