Slide 1

Slide 1 text

カバレッジ率のバッヂ出す team zoi

Slide 2

Slide 2 text

概要 ゴール:coverallsとか使わないでREADMEにカバレッジ率のバッヂ出す モチベーション:せっかくフロントのカバレッジだしてもバックエンドと別に集計するサービ スがない

Slide 3

Slide 3 text

なんとかしてフロントのカバレッジを可視化 したい・・・したくない?

Slide 4

Slide 4 text

成果物 アプリ名:zone of integration リポジトリ: opt-tech/zoi アプリ概要: AWS lambdaを利用して、CIから渡されたカバレッジ率を元にバッジ画像を用意してS3 に配置、これをバッヂとして利用する

Slide 5

Slide 5 text

アーキテクチャ S3(private) S3(public) CircleCI test & report coverage GitHub repository ZOI(lambda function) put coverage json file get badge image put badge image file link to badge file CI hook event trigger to

Slide 6

Slide 6 text

利用した技術 - CircleCI : 言わずと知れたCIサービス - AWS lambda : 言わずと知れたFunction as a Service - 実行環境 : Node.js 4.3 : 言わずと知れたJavaScript実行環境 - AWS S3 : 言わずと知れたStorage as a Service - Shields.io : 言わずと知れたバッヂ生成サービス - ほんとか?

Slide 7

Slide 7 text

デモ

Slide 8

Slide 8 text

機能 - カバレッジ率を出す - バッヂの色、バッヂの名称の指定が可能 - バッヂの数は無制限 - 出したい種類のバッヂを出したい数だけ用意できる

Slide 9

Slide 9 text

苦労とか工夫とか 苦労 - CI -> trigger -> lambdaの実行が結構時間かかる - 最小限だけど2minとかCIにかかるしlambdaが起動されるのに最大 4,5分ぐらい待たされることがあ る - lambdaの動作確認が大変 - ローカルで動かせるようにちゃんと仕込みを入れたのが 17時だった(もっと早くやればよかった) - GitHubでバッヂ設置するとキャッシュされて更新されない(´・ω・`) - (´・ω・`) - あきむらさんがどこからともなく Content-TypeとCacheControlを設定するとうまくいくことを発見して 解決した

Slide 10

Slide 10 text

苦労とか工夫とか 工夫 - lambdaのデプロイはdeploy.sh作ってコマンド一発にした - 捗る - カバレッジ測るリポジトリは既存のちょうどいい使い回し - これ作るのに時間取られるのもアレなので - いい感じに分担出来た - しめにゃん:AWSの構築(最近やったのでわりと覚えてて上手いこといった) - あきむら:lambda functionの実装

Slide 11

Slide 11 text

おしまい 質疑