課題の整理
- 手作業更新で基線が曖昧になります。
- DerivedData共有で並行衝突が出ます。
- 未検証の巻き戻しはインシデントで時間喪失です。
スナップショット戦略と回復レーンの判断表
| レーン | 利点 | 注意 |
|---|---|---|
| APFS | 高速巻戻し | 保持本数設計 |
| 再焼き | 完全一致宣言 | 窓と合意 |
| WS分離 | 並行レーン | 版共有は検知必須 |
日常スナップショット・大改修は再焼き・並行はflockと隔離です。
イメージ基線(ゴールデン化)とスナップショット方針
基線一行にOS・Xcode・CLI版を載せ、承認毎に同名規則でスナップショットを切ります。夜間のみ自動、昼は手動にすると誤作成が減ります。複数Xcodeは/Applications/Xcode_16_2.appの版別名で併存し、既定は人手用に残す運用が無難です。
Xcode/CLIのドリフト検知
ジョブ先頭でxcodebuild-version・swift-version・whichを短ログへ追記し、基線とdiffします。逸脱は警告キューか即失敗かをフェーズで固定し、レビュー責務を曖昧にしないことが大切です。
ロールバック演習と許容ウィンドウ
四半期に本番手順でリストア→緑を計測。十五分超なら間隔かキャッシュを見直す。Runbookへ一行記録。
実装手順(最小セット)
- 基線ファイルで版凍結。
- DEVELOPER_DIRでXcode実体をジョブ毎固定。
- flockでDerivedData境界、待ち秒はCI短め。FAQ参照。
- CIユーザーと対話で鍵とキャッシュ分離。
- 変更窓直後にスナップショット一回、巻戻しRunbookは番号付き。
- 演習で所要を閾値更新。
引用できる目安
- 演習合格は十五分以内緑。
- 保持は直近三本+月次一本目安。
- xcode-selectはsudoersでCIのみ。
FAQ
複数Xcodeは/Applications版別名+DEVELOPER_DIR固定。
スナップショットのみで足りるか。 短期は可、長期ドリフトは再焼き。