[androidアプリ] GitHub Actionsでプルリクエスト毎にdeploygateの配布ページを作る

はじめに

deploygateのAPIを使ってherokuのreview app的な仕組みを作りたいと思っていたのでそれをやりました。
androidアプリを作ったことがないのでどういうワークフローにしようか考えたんですが、herokuに習って下記の通りにしました。

  • プルリクエストをmasterにマージした時はmaster用の配布ページにアップロードする
  • プルリクエストをオープンするとプルリクエスト番号を添えた専用の配布ページを作成しapkをアップロードする
  • プルリクエストを閉じた時はプルリクエスト専用の配布ページを削除する
name: Android CI

on:
  pull_request:
    types: [synchronize, opened, reopened, closed]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Build with Gradle
      run: ./gradlew build

    - name: Distribute App for master
      if: github.ref == 'master' && github.event.pull_request.merged == true
      run: |
        curl \
         -F "token=${{secrets.DEPLOYGATE_TOKEN}}" \
         -F "file=@app/build/outputs/apk/debug/app-debug.apk" \
         -F "message=https://github.com/jiikko/first_android_app/commit/`git rev-parse --short $GITHUB_SHA`" \
         -F "distribution_name=first application(master)" \
         https://deploygate.com/api/users/jiikko/apps
    - name: Distribute App
      if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize'
      run: |
        curl \
         -F "token=${{secrets.DEPLOYGATE_TOKEN}}" \
         -F "file=@app/build/outputs/apk/debug/app-debug.apk" \
         -F "message=https://github.com/jiikko/first_android_app/commit/`git rev-parse --short $GITHUB_SHA`" \
         -F "distribution_name=first-application(#${{ github.event.number }})" \
         https://deploygate.com/api/users/jiikko/apps

  cleanup:
    runs-on: ubuntu-latest
    steps:
    - name: set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8

    - name: Cleanup
      if: github.event.action == 'closed'
      run: |
        curl \
          -X DELETE \
          -F "token=${{secrets.DEPLOYGATE_TOKEN}}" \
          -F "distribution_name=first-application(#${{ github.event.number }})" \
          https://deploygate.com/api/users/jiikko/platforms/android/apps/com.example.firstapplication/distributions

https://github.com/jiikko/first_android_app で動かしていました。

参考にした記事

おわり