これは ゆめみ その2 Advent Calendar 2019 の19日目の投稿です。
今回はタイトルどおり、GitHub Actions で Android アプリのビルドを実行し、apk ファイルをアップロードするワークフローを紹介します!
apk ファイルのアップロード先について
実際に仕事のプロジェクトでビルドを自動化する場合は、Firebase App Distribution なり DeployGate へ apk ファイルをアップロードした方が便利でしょう。
ただ今回は、それらのアカウントを用意するまでもないような小さなプロジェクトや個人プロジェクトを想定して、GitHub Actions の Artifacts へ apk ファイルをアップロードすることにします。(この方法であれば別途 Firebase 等のアカウントを用意する必要はありません。)
ワークフロー
GitHub Actions の Ubuntu の環境は、Android アプリをビルドする為の SDK がはじめから導入されているので、とくに何もせずそのままビルドすることが出来ます。今回はビルドの前に、Android Lint で致命的なエラーが無いか、また Unit テストが通るかもチェックすることとします。このワークフローは次のようになります。
name: Android CI
on:
push:
branches:
- master # masterブランチへのマージを契機にビルドする
jobs:
build:
name: Build on merge # GitHub上で識別しやすいのでジョブの名前をつけておく
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v1
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Run Android Lint
run: ./gradlew lintDebug
- name: Run Unit Test
run: ./gradlew testDebug
- name: Build with Gradle
run: ./gradlew assembleDebug
- name: Upload apk file
uses: actions/upload-artifact@v1
with:
name: apk
path: app/build/outputs/apk/debug/app-debug.apk
上記のワークフローのとおり、Artifacts へのアップロードは https://github.com/actions/upload-artifact を利用しています。
ビルドが成功すると、GitHub Actions のジョブのページ に apk ファイルがアップロードされます。
おわりに
いかがだったでしょうか。ビルドの成否を Slack へ等へ通知するともっと便利かもしれません。GitHub Actions については、次のような投稿もしていますので、よろしければご覧ください!