カバレッジのSlack通知
こちらの内容を参考に、CircleCI Enterpriseでビルド時に集計したカバレッジを、Slack通知できるようにしました。
参考元のスクリプトではcoberturaとjacocoに対応していましたが、simplecovにも対応してあります。 あと、取得元をGitHub Enterpriseでも大丈夫なようにしてあります。
設定手順(SimpleCov利用の場合)
RubyプロジェクトでSimpleCovを使い、カバレッジを取得している場合の設定手順です。
1. Artifactsにカバレッジを保存
circle.xmlでtest実行後にカバレッジのあるcoverageディレクトリをArtifactsに移動(またはコピー)する。
test: post: - sudo mv coverage $CIRCLE_ARTIFACTS
2. CircleCIのプロジェクト設定
カバレッジ通知対象のCircleCIプロジェクトの設定画面を開き、以下の設定を行う。
API Permissions
PERMISSIONS > API Permissions で Create TokenボタンからBuild Artifactsのトークンを作成する(ラベル名は適当で良い)
Environment Variables
BUILD SETTINGS > Environment Variables で 以下の変数を設定する
Name | Value |
---|---|
SLACK_ENDPOINT | SlackのWebhook URL |
CIRCLE_TOKEN | 手順1で作成したトークン値 |
Test Commands
TEST COMMANDS > Test Commands の Post-test commands にGistに登録したシェルのパスを以下のように設定する
curl -s -L https://gist.github.com/seriwb/31d47a36a108183b1b5c33ae1f51b681/raw/circleci-coverage-slack.sh | bash -s
シェルのサンプル
実際には以下のシェルをコピーなどして、必要なURLを設定して利用して下さい。
3. ビルドする
対象プロジェクトがビルドされれば、Slackにカバレッジ結果が通知されます。