9
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

GitHub Actions で Android アプリをビルドして apk ファイルをアップロードする

これは ゆめみ その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 ファイルがアップロードされます。

スクリーンショット 2019-12-21 21.17.51.png

おわりに

いかがだったでしょうか。ビルドの成否を Slack へ等へ通知するともっと便利かもしれません。GitHub Actions については、次のような投稿もしていますので、よろしければご覧ください!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
9
Help us understand the problem. What are the problem?