Gradle PluginとCIと俺

Post on 12-Jan-2017

1.628 views 0 download

Transcript of Gradle PluginとCIと俺

Gradle PluginとCIと俺

kyobashi.dex #3

About Me

Shinobu Okano

@operandoOS

Mercari, Inc.

CIしてますか??

CIで継続的に

テストを回す??

そんな意識高い

話じゃない!!

Travis CI

https://travis-ci.org/

俺が知ってるCIサービスの微妙なところ

• 記述してる処理が正常に終わったか or 失敗したかの通知しかこない

• ゴニョゴニョすれば細かいことはできるだろうけど難しそう...

何がしたかったか

• GradleのTask単位での出力結果がほしい

• その結果をSlackとかに通知してほしい

• 人力でやるのは辛いのでCIでよしなな間隔でやってほしい

GradleからSlackに通知したい!

• できます!

• gradle-slack-pluginならね!

gradle-slack-plugin(original)

https://github.com/Mindera/gradle-slack-plugin

gradle-slack-plugin (魔改造)

https://github.com/operando/gradle-slack-plugin

gradle-slack-plugin setting

slack { url "slack web hock url" // 出力を通知したいtaskを書く

dependsOnTasks 'dependencyUpdates' title 'gradle slack plugin title' enabled true or false }

じゃ何を通知するか

• 定期的にSlackに通知して意味あるもの

• 定期的に見ておいたほうがいいもの

• 和むもの

gradle-versions-plugin

https://github.com/ben-manes/gradle-versions-plugin

gradle-versions-plugin

“Gradle plugin to discover dependency updates”

gradle-versions-plugin

gradle dependencyUpdates

gradle-versions-plugin

gradle-versions-plugin

gradle-slack-plugin + gradle-versions-plugin + CI• CI上でdependencyUpdates taskを実行

• dependencyUpdates taskの出力結果をSlackに通知する

• 簡単!!

• 実行するタイミングは細かく設定可能

• Pull RequestをMerge or masterにPushされた時のみ実行とか…

• これはCIサービス側の設定で楽にできる

• Travis CIの場合

• - if [ “$TRAVISPULL_REQUEST" == "false" ]; then ./gradlew dependencyUpdates; fi

gradle-slack-plugin + gradle-versions-plugin + CI

Sample

https://github.com/operando/AndroidGradleCiSample

Android Gradle Ci Sample

Demo

こんな感じで通知くるよー

Productionで

使ってるぞ!!

継続的

Version Check!!

• dexcount-gradle-pluginでメソッド数カウントして通知する

• gradle-android-apk-size-pluginでapkのサイズ調べて通知する

などなど…

その他に…

可能性は無限大

応用編

これ覚えてますか?

Gradle Plugin と

Twitter と

ズン ドコ キ・ヨ・シ!shibuya.apk #6

http://www.slideshare.net/shinobuokano7/gradle-plugintwitter-59637926

ズンドコ キ・ヨ・シ!

gradle-zundokokiyoshi-plugin

https://github.com/operando/gradle-zundokokiyoshi-plugin

gradle-zundokokiyoshi-plugin

gradle zungokokiyoshi

gradle-zundokokiyoshi-plugin

どうするか

• CI上でzungokokiyoshi taskを実行

• zungokokiyoshi taskの出力結果をSlackに通知する

• 簡単!!

Demo

こんな感じで通知くるよー

さらにらに...

gradle-twitter-plugin

https://github.com/operando/gradle-twitter-plugin

gradle-twitter-plugin

Gradleからツイートできる

素晴らしいPlugin!!

どうするか

• CI上で....

と思ったけど...

• なんかPluginの作りがあれであれなのでできなそう

• 作ったやつのセンスが疑われる

色んなGradle Plugin

Android Dev Tools Knowledge DroidKaigi 2016

http://www.slideshare.net/shinobuokano7/android-dev-tools-knowledge#33

Thanks!