takedajs ログ

備考録

CircleCI2.0でデプロイ成功時にSlack通知する

CircleCI2.0(以下,CircleCI)を利用して、デプロイが成功した時、Slackに通知が飛ぶようにしてみました。

CircleCIを利用したデプロイは前回の記事で書いたので、今回の記事ではSlack通知の部分を記述しています。

www.takedajs.com

SlackのWebHook URL取得

Slackでワークスペースを作成。
https://slack.com/

デプロイ通知を送るチャンネルを作成。今回は#リリースを利用します。

f:id:takedajs:20171115200437p:plain

以下サイトにアクセスして通知に必要なWebHook URLを取得します。
https://slack.com/services/new/incoming-webhook

チャンネルを指定して、「Add Incoming WebHooks integration」を押下するとWebHook URLが表示されます。
後で利用するため、コピーしておいてください。

f:id:takedajs:20171115200523p:plain

CircleCIの環境変数にWebHook URLを設定

CircleCIの左メニューにあるSETTING->Projects一覧にある利用するプロジェクトの歯車ボタンを押下します。

f:id:takedajs:20180624154159p:plain

Environment VariablesページでAdd Variableボタンを押下し、先程取得したWebHook URLを環境変数として設定します。

SLACK_WEB_HOOK : https://hooks.slack.com/services/xxxxxxxx (WebHook URL)

f:id:takedajs:20180716224428p:plain

CircleCIの設定ファイルにSlack通知処理記述

設定ファイルのconfig.ymlに以下を記述します。
username, text, icon_emojiはご自由に変更ください。

curl -X POST --data-urlencode "payload={\"username\": \"circleCI\",\"text\": \"masterをデプロイしました。\", \"icon_emoji\": \":ghost:\" }" "${SLACK_WEB_HOOK}"

config.yml

通知結果

デプロイに成功すると、Slackの#リリースにこのように通知がきます。

f:id:takedajs:20180716224452p:plain

まとめ

CircleCIでデプロイ成功時にSlack通知を行いました。
今回はWebHook URLを環境変数に設定してconfig.ymlにSlack通知を行う処理を書きました。 別のやり方で、CircleCIのChatroom IntegrationsにあるSlack項目にWebHook URLを登録する方法でもSlack通知ができるみたいです。

f:id:takedajs:20180716224607p:plain