プルリクエストをレビューするとき、変更が最新のベースブランチと一緒に動くか、実機ではどう見えるか。OpenCI v2.5.0では、この両方を同じPRで確認できます。
最新のベースブランチと組み合わせてテストする
PRのCIは、GitHubが作成したテスト用マージコミットをチェックアウトします。実行前に、その親コミットが現在のベースブランチと対象のPRのコミットに一致することを確認します。レビュー中にベースブランチが進んだときも、どの組み合わせでテストしたかをビルドログのコミットIDで追えます。
コンフリクトでマージできない場合は、GitHub Checksとダッシュボードに理由と対処方法が表示されます。同じ変更・実行条件のPR通知が重複して届いた場合は、既存のジョブを使います。PRを閉じるかマージすると、そのPRで待機中・実行中のジョブは取り消されます。
テスト用アプリをPRのQRコードから開く
Firebase App DistributionにアップロードしたiOSのIPAやAndroidのAPKには、テスター用URLがあります。ワークフローでこのURLを postQrCode に渡すと、成功時にOpenCIが元のPRにリンクとQRコードを掲載します。コメントにはワークフロー名と、取得できたアプリのバージョン・ビルド番号が並びます。
たとえばiOSでは、ビルド済みの ipaPath を使って、Firebaseに登録した qa グループへ次のように配布できます。
final testerUrl = await openCI.flutter.deployIpaToFirebaseAppDistribution(
ipaPath: ipaPath,
serviceAccountJsonBase64: Secrets.firebaseServiceAccountJsonBase64.value,
groups: ['qa'],
);
await openCI.pullRequest.postQrCode(url: testerUrl);コメントは英語が既定で、lang: PostQrCodeLang.ja を渡すと日本語になります。次のビルドが成功すると同じコメントが更新され、失敗した場合も直前に成功したビルドのリンクを使えます。実機で開くテスターにはFirebase側のアクセス権が必要です。ワークフローSDK 0.2.9
CLIを openci に切り替える
CLIのパッケージ名は openci_cli_plus、コマンド名は openci になりました。genuineci で使っていたプロファイルと設定を引き継ぎます。インストール後に、現在のチームを確認できます。
dart install openci_cli_plus
openci statusシークレット定義を同期するスクリプトでは genuineci sync --secrets を openci sync --secrets に変更してください。CLIリファレンス
ダッシュボードとWebプレビューの更新
- ダッシュボードの「設定 → 課金を管理」で、チームの当月の利用状況と過去の請求履歴を確認できます。Cloudの実行料金は1分1円(税込)で、1分未満の端数は月のチーム合計に対して一度だけ切り上げます。料金と計算例
- macOS版ダッシュボードのSparkleによる更新を再開しました。macOS 26以降向けに、署名・公証済みのOpenCI 2.0.0を公開しています。macOS版の更新フィード
- OpenCI公式サイトとWebダッシュボードでは、対象のPRごとにFirebase Hostingのプレビューを作成します。同じPRに変更を足すと同じURLが更新され、有効期限は公開から1時間です。プレビューの実装
前回の記事で紹介したStacked PRアプリとそのCIは、今回のタグでリポジトリから削除しました。SDKをソースから使う場合は、Goヘルパーの削除とFirebase Hosting APIの追加も変更点です。これらのSDK変更はpub.devの0.2.9より後のものです。GitHub Release v2.5.0 · v2.4.0からの全変更
RELEASE NOTES