こんにちは!
今日はConcourseでSlack通知をする方法を紹介します。
以外と検索しても出てこなかったので少し詰まりました。
Slack側の準備
まず、Slack側でIncoming Webhookを設定します。
Slack側の準備
- ステップ1チャンネル詳細>インテグレーション>ワークフローを追加する
- ステップ2ワークフロービルダーから作成ボタンを押下します。
適当に名前をつけます。
- ステップ3変数を設定
「アプリまたはサービスがウェブリクエストを送信したら開始する」>変数を追加するボタンを押下
適当に キー:text、データ・タイプ:テキスト という変数を作成して保存する - ステップ4ステップを追加
ワークフロー>ステップを追加ボタンを押下
- ステップ5メッセージを送信
メッセージを送信を追加します。
メッセージの送信先やテキストを設定。
「変数を挿入する」を押して、textをメッセージのテキストに追加します。 - ステップ6公開する
右上の公開するボタンを押下してConcourse側の設定は完了。
公開後、webhookのurlが確認できます。
「アプリまたはサービスがウェブリクエストを送信したら開始する」の下のURLをコピーボタンを押下することで、URLが取得できます。
Concourse側の設定
続いて、Concourse側のコードを作成していきます。
公式ドキュメントを参考に作成しました。
resource_types:
- name: slack-notification
type: docker-image
source:
repository: cfcommunity/slack-notification-resource
resources:
- name: notify
type: slack-notification
source:
url: ((slack-webhook))
jobs:
- name: get-text
plan:
- task: get-text
〜タスク内容〜
on_success:
put: notify
params:
text: "get textが問題なく完了しました"
on_failure:
put: notify
params:
text: "get textでErrorが発生しました"
params
slack-webhook: <webhookのurl>
URLはSlackの設定で取得したwebhookのURLを入れます。
まとめ
以上の設定にて、flyして実行すればConcourseとSlackの連携が可能です。
参考になれば幸いです。
以上!