Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

gitでコミット日ごとの総ファイル数を取得してgnuplotでグラフ化してみる

f:id:tbpg:20161013221136p:plain

gitでコミット日ごとの総ファイル数を取得してgnuplotでグラフ化してみます。
きっかけは結城先生のツイートです。

続きを読む

Circle CI で bundle outdated を実行し、結果を JUnit xml にすることでレポートを生成する

alt

Circle CI で bundle outdated を実行し、結果を JUnit フォーマットの xml にすることでレポートを生成します。

budle outdated 関連はいろんな人が自動化していて、特に新規性はないのですが
JUnit フォーマットの xml を自前で作成してみるのを試したくてこのお題にしました。

JUnit XML 形式はCircle CI など多くのCIサービスのテストや静的解析の実行時に
レポート表示がサポートされていることが多いです。 (全ては把握してないので曖昧な表現)

続きを読む

Circle CIのBuild情報をSlackで通知する

CIのBuild情報をSlackに通知します。 ※この記事は個人メモとしての記事です。既出情報なので特に新規性・独自性はありません。

手順

Slack の Circle CI 連携画面を開く

f:id:tbpg:20161013224607p:plain

CircleCI Integration をクリックし、SlackのCircle CI連携画面へ遷移します。

通知先 channel の設定

通知先の channel を設定して Add CircleCI Integration を選択します。

f:id:tbpg:20161013224612p:plain

Webhook URL の取得

Webhook欄からURLをコピーします

f:id:tbpg:20161013224617p:plain

Webhook URL の設定

Circle CIに戻り、URLをWebhook URLに設定します

f:id:tbpg:20161013224623p:plain

テストする

Test Hook をクリックして、通知を確認します

f:id:tbpg:20161013224628p:plain

実践する

GitHubにpushをして、Slack実行 => Slackへの通知までの動作を確認します。

$ git push origin master

f:id:tbpg:20161013224633p:plain

ビルド番号のリンクをクリックしてみます。
Circle CIのビルドページが開きます。

f:id:tbpg:20161013224639p:plain

Circle CI で ESLint のレポートを生成する

alt

JavaScript + ESLint のプロジェクトで解析結果のレポートを設定します。

レポート未設定時のTest Summary

f:id:tbpg:20161013224942p:plain

サンプルコード

index.js

toString() の部分であえてセミコロンを省略しますa

module.exports = {
    calc: function(number) {
        if (number % 15 == 0) {
            return "FizzBuzz";
        } else if(number % 5 == 0) {
            return "Buzz";
        } else if (number % 3 == 0) {
            return "Fizz";
        } else {
            return number.toString()
        }
    }
};

.eslintrc.js

※設定はてきとうです

module.exports = {
    "env": {
        "node": true,
        "mocha": true
    },
    "extends": "eslint:recommended",
    "rules": {
        "indent": [
            "error",
            4
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": 
            "error",
            "double"
        ],
        "semi": [
            "error",
            "always"
        ]
    }
};

circle.yml

test:
  pre:
    - npm run lint -- --format=junit -o $CIRCLE_TEST_REPORTS/eslint/eslint.xml ./src

テスト失敗時

[f:id:tbpg:20161013224950p:plain

関連資料