2024-09-19

GithubActionでSlack通知

Overview

GithubAction(CI)を使ってSlackに通知を出しちゃう。

Context/Motivation

  • Githubで何かゴニョゴニョやったときに、Slackで誰かにメンションしたりするの面倒臭いよね。
  • チーム開発してるからできるだけ通知とかは自動化したよね。
  • プロジェクトでよく使うGithubのCIに慣れておきたいよね
  • (個人的に)GitLabばっかり使ってたけど、Githubもたまには使っておきたいよね

ということで、GithubのCIを使ってみたいだけです。
無料プランでは、月に2,000分、容量だと500MGまで使えるみたいです。

Get Started!!

CIの実行ファイルを作成

1つだけファイルを作成するだけです 笑

.github/workflows/main.yml
name: Slack Notification

on: [push]

env:
  SLACK_USERNAME: DeployBot
  SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
  SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

jobs:
  slackNotification:
    name: Slack-Notification
    runs-on: ubuntu-latest

    steps:
    #-- Gitリポジトリの内容を取得 --#
    - name: Checkout
      uses: actions/checkout@v3

    #-- Slack通知 --#
    # 成功
    - name: Slack Notification on Success
      uses: rtCamp/action-slack-notify@v2
      if: ${{ success() }}
      env:
        SLACK_TITLE: Deploy / Success
        SLACK_COLOR: good
        SLACK_MESSAGE: デプロイ完了しました🚀

    # 失敗
    - name: Slack Notification on Failure
      uses: rtCamp/action-slack-notify@v2
      if: ${{ failure() }}
      env:
        SLACK_TITLE: Deploy / Failure
        SLACK_COLOR: danger
        SLACK_MESSAGE: デプロイ失敗しました😢

環境変数を設定

  1. Githubのリポジトリ
  2. Settings
  3. Secrets and variables
  4. Actions
  5. New repository Secret

から、SLACK_WEBHOOKっていう名前でSlackのwenhoolURLを入力してあげましょう。
先ほどの変更をpushする前に設定しないと動きませんよ。

Slack通知が飛んでくる

こんな感じになれば良きですね。

こんな時に使えそう

  1. チーム開発で進捗を知りたい。

Github

公開していまーす

https://github.com/artisan-public/slack-notification

よくあるご質問

Artisanの活動頻度を教えてください

Artisanは基本的に1ヶ月に1回、2時間程度開催しています。そこでは、ブログのアイディアやサイトの改修を行なっています。 参加は強制ではないので、ご安心ください。そのとき暇なメンバーがフラッと参加する感じです。

エンジニアなのですが、Artisanに参加できますか?

Artisanは利益組織ではありませんので、給与はでず、有志の集団です。 趣味程度の活動です。 興味がありましたら、インスタグラムよりご相談くださいませ。 現在だと、ウェブデザイナーさんやフロントエンドのエンジニアさんにきていただけると、非常にありがたいです。

wordpressのテーマ作れますか?

ワードプレスのテーマ開発は得意なメンバーがいます。 実際にwordpressでサイト制作を請け負う際は、全てオリジナルテーマを作っております。 また、一般用にwordpressテーマ自体を販売もしております。

Artisanってデザイナー?

どちらかというと、エンジニです。 ウェブデザインやグラフィックも多少やりますが、メインはウェブ開発者ですね。

Wordpressテーマ販売中