dropboxのAffectedModuleDetectorでLintする
https://github.com/dropbox/AffectedModuleDetector
dropboxが公開しているOSSでAffectedModuleDetectorというのがあります
Androidアプリ用のgradle pluginで、マルチモジュール構成の特定のモジュールに限定してgradleのテストタスクを実行できる機能を持っています
現時点ではテストタスクのみサポートされていますが、実はAffectedModuleDetectorは変更差分が影響を与えうるモジュールを検知できる機能をAPIとして提供しておりこれを使って独自のプラグインをつくることができます
testタスク以外に、Lintも変更差分があるモジュールで実行できれば十分なので、カスタムのLintプラグインのサンプルを作ってみました
https://github.com/marshi/AffectedModuleLintSample
masterブランチから新規にブランチを作って変更を加え、commitしたあとに下記コマンドを実行すると変更があるモジュールでのみLintが実行されることが確認できると思います
|
|
ちなみにパラメータはAffectedModuleDetectorで定義されているものなのでそちらをご参照ください
このサンプルではlintコマンドしか対象にしていませんが、ktlintが動く環境であればコメントアウトしているKtLint用のコードを動かせばktlint用のrunAffectedKtLintが実行できるようになります
ある程度コードベースが大きなアプリでは結構効果があるのではないでしょうか
実戦投入はまだですが、そのうちするつもりです