gradle pluginとciと俺
TRANSCRIPT
![Page 1: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/1.jpg)
Gradle PluginとCIと俺
kyobashi.dex #3
![Page 2: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/2.jpg)
About Me
Shinobu Okano
@operandoOS
Mercari, Inc.
![Page 3: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/3.jpg)
CIしてますか??
![Page 4: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/4.jpg)
CIで継続的に
テストを回す??
![Page 5: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/5.jpg)
そんな意識高い
話じゃない!!
![Page 7: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/7.jpg)
俺が知ってるCIサービスの微妙なところ
• 記述してる処理が正常に終わったか or 失敗したかの通知しかこない
• ゴニョゴニョすれば細かいことはできるだろうけど難しそう...
![Page 8: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/8.jpg)
何がしたかったか
• GradleのTask単位での出力結果がほしい
• その結果をSlackとかに通知してほしい
• 人力でやるのは辛いのでCIでよしなな間隔でやってほしい
![Page 9: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/9.jpg)
GradleからSlackに通知したい!
• できます!
• gradle-slack-pluginならね!
![Page 10: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/10.jpg)
gradle-slack-plugin(original)
https://github.com/Mindera/gradle-slack-plugin
![Page 11: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/11.jpg)
gradle-slack-plugin (魔改造)
https://github.com/operando/gradle-slack-plugin
![Page 12: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/12.jpg)
gradle-slack-plugin setting
slack { url "slack web hock url" // 出力を通知したいtaskを書く
dependsOnTasks 'dependencyUpdates' title 'gradle slack plugin title' enabled true or false }
![Page 13: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/13.jpg)
じゃ何を通知するか
• 定期的にSlackに通知して意味あるもの
• 定期的に見ておいたほうがいいもの
• 和むもの
![Page 14: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/14.jpg)
gradle-versions-plugin
https://github.com/ben-manes/gradle-versions-plugin
![Page 15: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/15.jpg)
gradle-versions-plugin
“Gradle plugin to discover dependency updates”
![Page 16: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/16.jpg)
gradle-versions-plugin
gradle dependencyUpdates
![Page 17: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/17.jpg)
gradle-versions-plugin
![Page 18: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/18.jpg)
gradle-versions-plugin
![Page 19: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/19.jpg)
gradle-slack-plugin + gradle-versions-plugin + CI• CI上でdependencyUpdates taskを実行
• dependencyUpdates taskの出力結果をSlackに通知する
• 簡単!!
![Page 20: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/20.jpg)
• 実行するタイミングは細かく設定可能
• Pull RequestをMerge or masterにPushされた時のみ実行とか…
• これはCIサービス側の設定で楽にできる
• Travis CIの場合
• - if [ “$TRAVISPULL_REQUEST" == "false" ]; then ./gradlew dependencyUpdates; fi
gradle-slack-plugin + gradle-versions-plugin + CI
![Page 21: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/21.jpg)
Sample
https://github.com/operando/AndroidGradleCiSample
Android Gradle Ci Sample
![Page 22: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/22.jpg)
Demo
![Page 23: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/23.jpg)
こんな感じで通知くるよー
![Page 24: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/24.jpg)
Productionで
使ってるぞ!!
![Page 25: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/25.jpg)
継続的
Version Check!!
![Page 26: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/26.jpg)
• dexcount-gradle-pluginでメソッド数カウントして通知する
• gradle-android-apk-size-pluginでapkのサイズ調べて通知する
などなど…
その他に…
![Page 27: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/27.jpg)
可能性は無限大
![Page 28: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/28.jpg)
応用編
![Page 29: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/29.jpg)
これ覚えてますか?
![Page 30: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/30.jpg)
Gradle Plugin と
Twitter と
ズン ドコ キ・ヨ・シ!shibuya.apk #6
http://www.slideshare.net/shinobuokano7/gradle-plugintwitter-59637926
![Page 31: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/31.jpg)
ズンドコ キ・ヨ・シ!
![Page 32: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/32.jpg)
gradle-zundokokiyoshi-plugin
https://github.com/operando/gradle-zundokokiyoshi-plugin
![Page 33: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/33.jpg)
gradle-zundokokiyoshi-plugin
gradle zungokokiyoshi
![Page 34: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/34.jpg)
gradle-zundokokiyoshi-plugin
![Page 35: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/35.jpg)
どうするか
• CI上でzungokokiyoshi taskを実行
• zungokokiyoshi taskの出力結果をSlackに通知する
• 簡単!!
![Page 36: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/36.jpg)
Demo
![Page 37: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/37.jpg)
こんな感じで通知くるよー
![Page 38: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/38.jpg)
さらにらに...
![Page 39: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/39.jpg)
gradle-twitter-plugin
https://github.com/operando/gradle-twitter-plugin
![Page 40: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/40.jpg)
gradle-twitter-plugin
Gradleからツイートできる
素晴らしいPlugin!!
![Page 41: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/41.jpg)
どうするか
• CI上で....
![Page 42: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/42.jpg)
と思ったけど...
• なんかPluginの作りがあれであれなのでできなそう
• 作ったやつのセンスが疑われる
![Page 43: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/43.jpg)
色んなGradle Plugin
Android Dev Tools Knowledge DroidKaigi 2016
http://www.slideshare.net/shinobuokano7/android-dev-tools-knowledge#33
![Page 44: Gradle PluginとCIと俺](https://reader033.vdocuments.site/reader033/viewer/2022042513/5877a93c1a28ab826e8b68f5/html5/thumbnails/44.jpg)
Thanks!