次のように記載するとGithubActionsでSlack通知を行うことができます。
このフローはtestブランチがプッシュされた時echoコマンドが実行され、その成否によってSlack通知の内容が変わるようになっています。
# 任意の名前(Action名)を設定する
name: "Slack-notice"
on:
push:
branches:
- test # 使用しているブランチ名
permissions:
id-token: write
contents: read
jobs:
deploy:
environment:
name: test-env # githubのsetting -> environment で作成した環境名
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
# echoコマンドの実行
- name: Exec echo
run: echo "test"
# Slack通知を行う処理
- name: Failure notification
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: ${{ failure() }}
env:
# SLACK_WEBHOOK_URLはgithubのsetting -> environment で作成した環境名のsecretsで設定する
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_COLOR: '#dc143c' # 赤色の枠で通知が届く
SLACK_MESSAGE: |
処理に失敗しました。
ログを確認してください。
- name: Succsess notification
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: ${{ success() }}
env:
# SLACK_WEBHOOK_URLはgithubのsetting -> environment で作成した環境名のsecretsで設定する
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_MESSAGE: |
処理に成功しました。
補足
environmentとsecrets
environment:
のname:
には github画面上で対象リポジトリのsetting -> environment で作成した環境名を設定します。
environment
ではコード上に書きたくない変数を設定でき、今回はSLACK_WEBHOOK_URL
に実際のWEBHOOK_URLを設定しています。
Slack通知の条件分岐
uses: rtCamp/action-slack-notify
では、if: ${{ failure() }}
、if: ${{ success() }}
などと定義すると、ワークフローの成否によってSlackに通知する内容を変更できます。