11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

パッケージ追加・更新時に周知めんどいからSlack通知して自動化したった

Last updated at Posted at 2024-01-14

はじめに

この記事では、GitHub Actionsを使って、Dockerのイメージなどの変更やパッケージ管理ファイルの変更などがmainブランチにマージされたときに、他の開発者にnpm installお願いします〜!みたいな周知を毎回するのめんどくなったので、それを自動的にSlack通知して周知を自動化する方法を紹介します。
これにより、周知忘れによるあれっ?ここなぜか動かないんですが、、、わかりますか?みたいなこともなくそうと思います!
めっちゃシンプルに書いていきます。

実施内容

GitHub ActionsとSlackのWebhookを使用して、以下のような例のファイルの変更コミットをmainのブランチにマージされたときに検知し、npm installお願い〜みたいなメッセージをSlackチャンネルに通知して周知するようにします。

  • composer.jsonとcomposer.lockの変更
    • composer installお願いします〜を自動化できます。
  • package.jsonとpackage-lock.json
    • npm installお願いします〜みたいなの自動化できます。
  • docker系ファイル
    • ビルドしなおしてください〜みたいな周知を自動化できます。
  • データベースのマイグレーションとシーダーファイル
    • migrate(seed)しなおしてください〜を自動化できます。

準備

この設定を行うには、以下のものが必要です。

  • GitHubリポジトリ
  • Slackワークスペース
  • SlackのWebhook URL
    • こちら準備する手順は後述

実装手順

SlackのWebhook URLを取得する

  1. Slackアプリで、通知を送信したいチャンネルを開きます。
  2. チャンネル名の右側にある矢印アイコンをクリックします。
  3. 「インテグレーション」のセクションで「アプリを追加する」をクリックします。
  4. 「アプリを検索」ボックスに「Incoming WebHooks」を入力し、結果から選択します。
  5. 「Add to Slack」ボタンをクリックします。
  6. 「Post to」ドロップダウンメニューから通知を送信したいチャンネルを選択します。
  7. 「Add Incoming WebHooks integration」ボタンをクリックします。
    ※Webhook URLをコピーしておきます。

GitHubリポジトリの設定を開く

  1. Secretsタブを開きます。
  2. New repository secretボタンをクリックします。
  3. Nameに任意の名前を入力し、Valueに先ほどコピーしたWebhook URLを貼り付けます。

GitHub Actionsのワークフローファイルを作成する

  1. .github/workflowsディレクトリに新しいYAMLファイルを作成します。
  2. 以下の例のようにワークフローファイルを設定します。
    • これをcomposerバージョンとかDockerバージョンで複数ファイルももちろん作成することもできる
.github/workflows/◯◯.yml
name: "Notify npm package change"

on:
  push:
    paths:
      - "front/package.json"
      - "front/package-lock.json"
    branches:
      - main

jobs:
  notify_slack:
    runs-on: ubuntu-latest
    steps:
      - name: Notify Slack
        uses: rtCamp/action-slack-notify@v2
        env:
          SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL_EXEC_CMD }}
          SLACK_COLOR: "warning"
          SLACK_MESSAGE: |
            *npmパッケージの変更が検知されました*
            最新のmainブランチにて以下のコマンドの実行をお願いします:
            ```
            docker-compose exec ◯◯ npm install
            ```
          SLACK_USERNAME: Github Actions
          SLACK_ICON_EMOJI: ":bell:"

結果

これで、今回の説明だとフロントのパッケージ管理ファイルなどが変更されたときに、自動的にSlackに通知されるようになりますので、適当にテストで確認してみてください〜!
これにより、他の開発者が最新の変更を迅速に把握することができるかつ、周知漏れによる時間ロスなどもなくすることができるかと思います。

終わりに

GitHub ActionsとSlackのWebhookを使って、パッケージ管理やDockerなどのファイルの変更を自動的に通知することで、いちいち面倒な周知を永久に自動化できます!

参考

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?