マトリックスビルドへの対応とCI/CDアクションの整理
2026年5月19日(火)から5月22日(金)までに進めた、マトリックスビルド(組み合わせ/除外/動的置換)のサポート、主要CI/CDアクションの整理、iOS / iPadOS アプリの無料化、および現在の導入状況と新規ユーザーの募集についてまとめました。
今週のハイライト
主な変更を、導入判断に関係する粒度でまとめています。
- 01マトリックスビルド
- 複数環境の自動展開(組み合わせ/除外/動的置換)に対応
- 02CI/CDアクション刷新
- `flutter-pub-cache` や `flutter-cd` などをTypeScript (Node24) でリニューアル
- 03iOS / iPadOS アプリ無料化
- アプリストアでの価格設定を1,200円から無料(0円)に改定
マトリックスビルド(組み合わせ・除外・動的置換)へ対応
複数プラットフォームや複数バージョンのビルドを効率よく定義できるよう、マトリックス(matrix)ビルドの解析エンジンを実装しました。
OSやFlutter SDKのバージョンといった変数の組み合わせ(デカルト積)から自動で複数のビルドジョブを展開・生成することができます。特定の不要な組み合わせを除外する exclude や、特定のパラメータを追加・上書きする include といった、GitHub Actionsライクな柔軟なフィルタリングルールにも対応しています。
また、設定ファイル(YAML/オブジェクト)内で指定された ${{ matrix.xxx }} というプレースホルダーを、各ジョブの値へ動的に置換する式展開機能(resolveMatrixExpressions)も組み込まれました。これにより、1つの共通ジョブ定義からプラットフォームに応じた多様なビルド構成が展開可能になります。
CI/CDアクションのTypeScript(Node24)移行とリファクタリング
CI/CDパイプラインをより安定して保守しやすくするため、既存のCompositeアクションやシェルスクリプトで書かれていた主要アクションをTypeScriptベースに再設計しました。
flutter-pub-cache: Google Cloud Storage(GCS)を利用した高速な依存パッケージのキャッシュ機能(圧縮、アーカイブ、ハッシュ化)を内包する独自アクションとして移行しました。flutter-cd: macOSアプリ向けのビルド、コード署名、公証(Notarization)ワークフロー、Firebase HostingへのWebデプロイ、およびマトリックス展開やXcodeキャッシュの適用などを個別のモジュールに整理して再構築しました。save-secret-file: 従来のアクションからNode24実装へとアップグレードし、依存関係のライセンスを含めてパッケージ化した上で、openci-org/openciリポジトリ内へローカルアクションとして移管しました。
ビルド・ワークフロー再試行機能(Retry API)の修正とテスト強化
マトリックスビルドの導入に伴い、再試行処理に起因して発生した不具合の修正とコードの整理を行いました。
元々提供していたビルドジョブの再実行ハンドラー(retryBuildJob)およびワークフロー全体の再実行ハンドラー(retryWorkflowRun)の処理を見直し、マトリックス構成下でも正常にジョブの再生成やステータス同期が動作するよう修正しました。あわせて、インストールトークンの有効期限検証やエラーハンドリングを強化し、異常系を含むユニットテストを十分に整備することで、再試行プロセスの信頼性を高めています。
ダッシュボード UI/UX の改善とクエリ高速化
- マージ後のダイアログ自動クローズ: カンバン画面から「マージする」ボタンをタップした際、マージ処理がバックグラウンドに流れると同時に、編集用のイシューエディタダイアログを自動で閉じる挙動へ改善しました。
- 本番環境でのデバッグバナー制御: Dashboardアプリの製品ビルドにおいて、Flutterのデバッグバナーをデフォルトで非表示に設定し、デバッグモード時のみ条件付きで表示されるよう調整しました。
- ビルドジョブ取得の高速化: Firestoreの
build_jobs_v0コレクションにworkflowRunIdとcreatedAtの複合インデックスを追加したことで、ダッシュボード側のビルド履歴表示クエリが劇的に高速化しました。
iOS / iPadOS アプリの価格を無料化
これまで1,200円の有料アプリとして設定されていた iOS および iPadOS 向け OpenCI アプリの価格設定を修正し、**完全無料(0円)**でダウンロードできるように変更しました。今後はどなたでもお気軽にモバイルデバイスからビルド状況の確認や操作をご利用いただけます。
現在の導入状況と新規ユーザーの募集について
現在、OpenCIでは先行して3社への導入を進めております。実際の現場でご活用いただく中で、非常に有益なフィードバックを多数いただいており、プロダクトをより良くするための学びの機会となっています。
この3社での導入および運用が落ち着き次第、順次新規ユーザーの受け入れ(一般公開)を開始する予定です。
もし、先行して導入をご検討されている方や、優先的な対応をご希望される方がいらっしゃいましたら、m.aoki@openci.org までお気軽にお問い合わせください。優先的にご案内いたします。