FlutterアプリのリリースGitHub Actions
Flutterアプリを自動的にビルドして各ストアにアップロードするGitHub Actionsを書いていく
workflow_dispatch:
で任意のタイミングで、アップロードできるようにする
テスト環境の場合は、mainブランチにマージされたタイミングで自動で実行することも考えたが、
GitHub Actionsもタダじゃないので、節約のために、任意のタイミングにした
テスト環境、本番環境のActionは共通化しつつも、ワークフローとしては別にしておく
テストでも本番環境でも、ビルド番号を上げる
本番環境だったら、inputs:
で、どのバージョンを上げるのか指定してもらう
major, miner, patch
workflow_dispatch:
では、ブランチを指定できるようになっているので、
イレギュラーなリリースにも柔軟に対応できそう
workflow_dispatch: リリースPR作成が実行されたら
- 「workflow_call: バージョンアップPRの作成」の呼び出し
workflow_dispatch: ステージングPR作成が実行されたら
- 「workflow_call: バージョンアップPRの作成」の呼び出し
workflow_call: バージョンアップPRの作成が呼び出されたら
- ビルド番号を上げる
- アプリバージョンを上げる (リリースのみ)
- ブランチとPRの作成
- 担当者がレビューして、手動マージ
release/vxx.xx.xx+xxのpull_requestがCloseかつMergeされたら
- mainにタグを切る & release作る
staging/vxx.xx.xx+xxのpull_requestがCloseかつMergeされたら (deliver.yml)
tagが作成されたら
- 「workflow_call: deliver-android」の呼び出し
- (並行して) 「workflow_call: deliver-ios」の呼び出し
workflow_call: deliver-androidが呼び出されたら
- Androidビルド
- アップロード
workflow_call: deliver-iosが呼び出されたら
- iOSビルド
- アップロード
参考にしている記事
この記事のやり方が最も簡単
証明書周りのベストプラクティス など
Androidのビルド、アップロードで参考にした記事
ubuntu-latestのデフォルトのJavaのバージョンがv11で、エラーを吐いていた
actions/setup-javaでバージョンをv17にしたら解決
* What went wrong:
Execution failed for task ':connectivity_plus:compileReleaseJavaWithJavac'.
> error: invalid source release: 17
GitHub Actions、
ワークフロー内で行われたアクションは、
別のワークフローのトリガーにはならないみたい
これを実現したなら、パーソナルアクセストークンを使ってアクションを実行する必要がある。
Google Play Developer APIの設定については、この記事がわかりやすかった
defaults:
run:
working-directory:
これは、runのステップにしか適用されない
名前がrunなんだから当然といえば当然
uses
で使いたかったら、
そのアクションがinputを提供してくれている必要がある
aps-environment問題に立ち向かう
通知機能がなかったので、Apple様からのメールは無視していたが、
通知機能が入るので、対応しなければいけない
色々見ていると、この記事の対応がよさそう
.app
.xcarchive
.ipa
各ファイルについて、 ちゃんと理解