【Concourse】ジョブ成功時や失敗時にSlack通知をする方法

Concourse

こんにちは!

今日は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の連携が可能です。

参考になれば幸いです。

以上!

タイトルとURLをコピーしました