Azure Pipelines で Android アプリ(Not Xamarin)をビルドする時、
普通にテンプレから作った gradle タスクは、 gradlew build
を実行しますが、これはアプリのプロジェクトに含まれる全てのビルドタイプをビルドするため、多くの場合ムダです。1
例えば私のプロジェクトの場合、ビルドタイプは標準の「Debug」,「Release」に加え実験用の「Experiment」を用意していたので、タスクの実行に 12分 もかかっていました。
完了後、Debug, Release, Experiment それぞれの .apk
が生成されていました。
特定のビルドタイプのみ(ここでは Release とします)をビルドする場合、gradlew build
の代わりに gradlew assembleRelease
を実行すればよいのですが、既定で追加されている gradle タスクではなぜか変更できません。
仕方がないので、既存の gradle タスクは削除して、「+」 で gradle タスクを検索して追加します。
こちらの Tasks は変更できるので assembleRelease
を設定します。
これで保存してパイプラインを実行すると、ビルドタスクの時間が 12分 から 8分 に短縮されました。
Artifacts にも Release 版の apk しか生成されていないのが確認できます。
@penguin_sharp さん、ありがとうございました。
上記はビルドAgent 「Hosted VS2017」 で作業してたんですが、これを 「Hosted macOS」 に替えたところ、 8分かかっていたビルド時間が 「2分50秒」 に短縮されました。
VS2017 が遅いのか Hosted macOS が早いのか分かりませんが、とりあえず Android アプリのビルドは Hosted macOS を使うとよさそうです。2