LoginSignup
17
7

More than 3 years have passed since last update.

SlackでCircleCIからカバレッジレポート通知を受け取る設定手順

Posted at

はじめに

SlackとCircleCIを連携させて、カバレッジレポートをslackから簡単に見えるようにする設定手順をまとめました。
単にCircleCIのArtifacts上にカバレッジレポートをあげるだけでは誰も見てくれないので、誰かがpushするたびに、Slackでカバレッジレポートのリンクが通知されます。

ちなみに、単にGitHubリポジトリの平均的なカバレッジ数だけを見れるようにしたいなら、Codecovとかを使ってバッジを付けるとかでもいいと思います。

前提

既にCircleCIのArtifacts上で下記のようにcoverage.htmlを出せている前提です。
スクリーンショット 2019-08-02 14.49.15.png

動作確認したCircleCIのバージョンは2.0です。

設定手順

①SlackのWebhook URLを取得する

こちらの記事を参考に取得してください。
基本的には、「設定を追加→対象のチャンネルを選択→Webhook URLを控える→設定を保存」という流れです。
画像とか変えるとかっこいいです。

②CircleCIとSlackを連携する

スクリーンショット 2019-08-02 15.22.49.png

CircleCIの管理画面で NOTIFICATIONS > Chat Notifications に進み、先ほど取得したWebhook URLを貼り付けてSaveします。

これでGitHubにpushされたら、ビルド結果などが自動で通知されるようになります。(カバレッジレポートはまだ)

③CircleCIの環境変数を追加する

スクリーンショット 2019-08-02 15.56.27.png

CircleCIの管理画面で BUILD SETTINGS > Environment Variables に進み、以下の環境変数を追加します。

Key: SLACK_NOTICE_HOOK
Value: 先ほど取得したWebhook URL

④config.yamlを編集する

例えばこんな感じで store_artifacts されているとします。

- store_artifacts:
    path: coverage.html
    destination: coverage.html

その直後に、POSTリクエストするタスクを追加してください。

- run:
    name: coverage report
    command: |
      curl -s -S -X POST \
            -d "{'channel': '#your_channel', 'username': 'coverage-report', 'text': ':circleci: coverage report: <https://$CIRCLE_BUILD_NUM-000000000-gh.circle-artifacts.com/0/coverage.html|open report :earth_asia: >(build $CIRCLE_BUILD_NUM)' }" \
            $SLACK_NOTICE_HOOK >/dev/null
  • channelは任意のチャンネル名を指定してください。
  • usernameは分かればなんでもよいです。
  • :circleci: はslack側でemoji登録されている必要があります。emojiはなくてもよいですがあるとかっこいいです。
  • $CIRCLE_BUILD_NUM はCircleCIの定義済み環境変数です。特に設定する必要はありません。
  • 000000000 はプロジェクトごとのIDです。カバレッジファイルのリンクを開いてURLを確認してください。
  • https://$CIRCLE_BUILD_NUM-000000000-gh.circle-artifacts.com/0/coverage.html はカバレッジファイルをどのようなパスで配置しているかによって変わるので適宜修正してくだい。
  • SLACK_NOTICE_HOOK はさきほどCircleCIの管理画面上で登録した環境変数です。

完成

こんな感じで通知されます。
open report をクリックするとカバレッジレポートを見れます。
やったね!

スクリーンショット 2019-08-02 15.45.02.png

さいごに

これ作ったはいいけど結局誰も見てくれなそうだな。。。
必要な時に簡単に見れるようになったってことでよしとするか。

参考資料

Circle CI で SimpleCov のカバレッジレポートを出力し、出力結果のリンクをSlackに通知する

17
7
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
17
7