Open14

FlutterアプリのリリースGitHub Actions

Masaharu HoriMasaharu Hori

Flutterアプリを自動的にビルドして各ストアにアップロードするGitHub Actionsを書いていく

Masaharu HoriMasaharu Hori

workflow_dispatch:で任意のタイミングで、アップロードできるようにする

テスト環境の場合は、mainブランチにマージされたタイミングで自動で実行することも考えたが、
GitHub Actionsもタダじゃないので、節約のために、任意のタイミングにした

Masaharu HoriMasaharu Hori

テスト環境、本番環境のActionは共通化しつつも、ワークフローとしては別にしておく

テストでも本番環境でも、ビルド番号を上げる

本番環境だったら、inputs:で、どのバージョンを上げるのか指定してもらう
major, miner, patch

Masaharu HoriMasaharu Hori

workflow_dispatch: リリースPR作成が実行されたら

  1. 「workflow_call: バージョンアップPRの作成」の呼び出し

workflow_dispatch: ステージングPR作成が実行されたら

  1. 「workflow_call: バージョンアップPRの作成」の呼び出し

workflow_call: バージョンアップPRの作成が呼び出されたら

  1. ビルド番号を上げる
  2. アプリバージョンを上げる (リリースのみ)
  3. ブランチとPRの作成
  4. 担当者がレビューして、手動マージ

release/vxx.xx.xx+xxのpull_requestがCloseかつMergeされたら

  1. mainにタグを切る & release作る

staging/vxx.xx.xx+xxのpull_requestがCloseかつMergeされたら (deliver.yml)
tagが作成されたら

  1. 「workflow_call: deliver-android」の呼び出し
  2. (並行して) 「workflow_call: deliver-ios」の呼び出し

workflow_call: deliver-androidが呼び出されたら

  1. Androidビルド
  2. アップロード

workflow_call: deliver-iosが呼び出されたら

  1. iOSビルド
  2. アップロード
Masaharu HoriMasaharu Hori

Androidのビルド、アップロードで参考にした記事
https://zenn.dev/pressedkonbu/articles/github-actions-for-android
https://medium.com/lodgify-technology-blog/deploy-your-flutter-app-to-google-play-with-github-actions-f13a11c4492e

ubuntu-latestのデフォルトのJavaのバージョンがv11で、エラーを吐いていた
actions/setup-javaでバージョンをv17にしたら解決

* What went wrong:
Execution failed for task ':connectivity_plus:compileReleaseJavaWithJavac'.
> error: invalid source release: 17

https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md