🐙

CircleCIとSlackを連携する

2021/10/21に公開

Orbs > circleci/slack@4.4.4 での設定方法です

以前はwebhookやSlackに公式で用意されていたCircleCIのアプリで設定したようですが、
現在はOrbsを使う方法になっているようです

設定

まずはこちらの手順に従ってSlackAppを作成します
https://github.com/CircleCI-Public/slack-orb/wiki/Setup

CircleCIのContextまたは該当プロジェクトの設定に、
Slackのトークンとデフォルトチャンネルを設定します

  • SLACK_ACCESS_TOKEN
  • SLACK_DEFAULT_CHANNEL

※ 今回はProject Settings -> Environment Variablesに設定しています

ymlファイル

https://circleci.com/docs/ja/2.0/configuration-reference/

commandsを使って成功時と失敗時の定義をします

version: 2.1
orbs:
  slack: circleci/slack@4.4.4
commands:
  notify_slack_pass:
    steps:
    - slack/notify:
        event: pass
        template: basic_success_1
  notify_slack_fail:
    steps:
    - slack/notify:
        event: fail
        template: basic_fail_1

使用できるテンプレートは以下(上記以外にholdやdeployがあります)
https://github.com/CircleCI-Public/slack-orb/wiki

イベントやテンプレート指定の他、
mentionsでメンションを追加したり
branch_patternでブランチを正規表現で指定できたりします

詳しくはこちらを参照してください(メッセージをカスタマイズする方法なども書いてあります)
https://circleci.com/developer/ja/orbs/orb/circleci/slack

あとは通知したいjobのstepにコマンドを追加するだけです

jobs:
  build:
      :
    steps:
      - checkout
          :
      - notify_slack_fail
      - notify_slack_pass

失敗、成功の両方通知したい場合は両方書けばOKです

Discussion