06
構成は条件分岐と検収項目で決める
本番採用の前に、汎用CIノードと遠隔Macを接続した一回のエンドツーエンド試運転を行います。確認対象は、製品転送、秘密情報の分離、提出状態の待機、ログ保存、ジョブ再試行、Mac再起動後の復旧、手動介入の入口です。
次のチェック項目を上から確認してください。
判定は次の条件分岐にします。
- 上の項目のうち、ビルド、署名、チケット装着、最終検証のいずれかにチェックが付く場合は、実際のMacノードを残します。
- Mac固有の処理を遠隔Macへ委譲し、ソース管理、ジョブ編成、成果物保管をLinux側で行う場合は、混合CIを選びます。
- 提出と状態照会だけにチェックが付き、署名済み製品を別の工程から安全に受け取れる場合は、Notary APIを使った汎用ノード中心の構成を評価します。
- 公開頻度が低く、再起動復旧や長時間稼働の要件がない場合は、按分利用できるMacノードで試運転し、結果を確認してから利用期間を決めます。
- 署名情報を共有ノードへ置けない場合、または前ジョブの状態を確実に消去できない場合は、共有Macを避け、隔離した遠隔Macへ戻します。
このチェックで「提出だけ」に該当する場合でも、Notary APIの採用をそのまま本番決定にしません。認証、状態管理、ログ保存、再試行、制品の改変防止まで確認できた場合に限り、汎用ノード中心の構成へ進めます。
採点の考え方として、提出だけを見れば汎用CI中心の構成が有利です。署名から配布検証までの一貫性、障害時の再現性、秘密情報の境界まで含めると、遠隔Macを残す混合CIの方が評価しやすくなります。
FAQ
macOSアプリの公証提出をLinux CIから行う場合の境界
提出済み製品のアップロードと状態照会だけなら、Notary APIをLinux側の制御ノードから呼び出す構成を検討できます。ただし、署名やMac固有のパッケージングをLinuxで代替できるとは限らないため、公開前の最終検証をMac側へ残します。
Mac上のジョブに提出処理をまとめたい場合はnotarytoolが扱いやすく、Linux側で複数のMacノードを制御したい場合はNotary APIが候補になります。後者では認証、状態管理、ログ保存、再試行を自社のCI設計へ組み込む必要があります。
公証工程でMacに依存する処理
Xcodeによるビルド、Developer ID署名、Appleのコマンドラインツールを使う検証、配布形式に応じたチケット装着が、Macノードへ置く代表的な処理です。公証サービスの成功通知だけでは、配布物の検証完了とはみなしません。
遠隔Mac CIへ自動署名を組み込む方法
汎用CIを編成担当にし、遠隔Macでは実行アカウント、キーチェーン、秘密変数、成果物保存先を分離します。再起動後のエージェント復旧と署名検証を試し、提出識別子とログを保存できてから無人運用へ移行します。