/ kyokomi note / blog

筋トレ記録Androidアプリのリリース作業を少し楽にする

May 14, 2023 [Android | Github | 個人開発]

mainブランチを releaseブランチにマージするとGooglePlayに配布するのはすでに組んでいたが、build.gradle.ktsversionCodeversionName を書き換えて git-pr-release するという手順を毎回手動でやってたので、「そろそろなんとかするか。。。」ということで対応したという話。

使うやつ

github actionsにワークフローを手動実行するやつがあるのでそれを使う。

Manually running a workflow - GitHub Docs

作ったworkflowの紹介

手動実行する際にやることはここでversionをいれるだけ、ちなみに Semverでやってるがパッチバージョンを毎回インクリメントするのが面倒なので、年月日時(2023/05/14の12時なら 23051412 )とかにした。

メジャーとマイナーバージョンを上げる必要がなければ、常に Run workflowするだけで良いということで楽ちんである。

Image from Gyazo

RunするとCIが始まる。

Image from Gyazo

CIがPassするとこんな感じでPRが作成される。

内容を確認してOKそうならマージするとGooglePlayに内部用早期アクセスとしてアップロードされて端末側に降ってくる。

Image from Gyazo

Image from Gyazo

今後別のAndroidアプリを作るときもそのまま使えるのでこういうのを作っておくのは、地味に大事。

workflowのyaml

以下が、github actionsのworkflowを組んだyamlのすべて。多分よくある普通のAndroid App構成ならコピペしてそのまま使えると思う。

name: Release Dispatch  
  
on:  
  workflow_dispatch:  
    inputs:  
      version:  
        description: 'Version'  
        required: true  
        default: '0.9'  
        type: string  
  
jobs:  
  release_dispatch:  
    timeout-minutes: 15  
    runs-on: ubuntu-latest  
    steps:  
      - uses: actions/checkout@v3  
      - uses: actions/setup-ruby@v1  
        with:  
          ruby-version: 3.1  
      - run: gem install --no-document git-pr-release  
      - name: Modify versionCode And versionName of build.gradle.kts  
        run: |  
          export VERSION_CODE="$(env TZ=Asia/Tokyo date +%y%m%d%H)"  
          export VERSION_NAME="${VERSION}.${VERSION_CODE}"  
          echo "VersionCode: ${VERSION_CODE}"  
          echo "VersionName: ${VERSION_NAME}"  
  
          # Setup git identity  
          git config --global user.email "[email protected]"  
          git config --global user.name "gh-workflow-release"  
  
          # app/build.gradle.ktsを書き換えて、上書き保存する
          sed -i -e 's/versionCode = .*/versionCode = '${VERSION_CODE}'/' app/build.gradle.kts  
          sed -i -e 's/versionName = .*/versionName = "'${VERSION_NAME}'"/' app/build.gradle.kts  
  
          # git commitしてmainブランチにpushする
          git add -u && git commit -m "Fix Version ${VERSION_CODE}" && git push -u origin main  
  
          # git-pr-releaseを実行する
          git-pr-release  
        env:  
          VERSION: ${{ inputs.version }}  
          GIT_PR_RELEASE_TOKEN: ${{ secrets.GITHUB_TOKEN }}
last modified May 14, 2023