ディスク警告の直後にJenkinsのビルドも失敗した。 最短の対処は、Jenkins Mac Agentのディスク容量不足をワークスペース、Xcodeコンポーネント、成果物に切り分け、該当するものだけを整理することです。一括削除は避け、清掃後も再発するなら実際のジョブ記録を基に運用かノード構成を見直します。
企業IT担当者:Macビルドノードの容量警告がCIの安定性に影響しているかを判断したい方。 プラットフォームエンジニア:Jenkins Mac Agent、ワークスペース、Xcode環境を運用している方。 技術責任者・開発生産性担当者:清掃の改善とMacリソースの見直しを、実績に基づいて決めたい方。
容量警告とビルド失敗を切り分ける
容量不足の通知、ファイル書き込みの失敗、Jenkinsジョブの失敗は、同じ状態を示すものではありません。ホストの空き容量を確認するとともに、失敗したジョブの時刻、実行段階、ログに記録されたエラーを集め、同じ時間帯の情報を照合します。
まず、Macのストレージ表示やターミナルのdf -h /で、起動ディスクを含むファイルシステムの空き容量を確認します。AppleのMacストレージ設定に関する説明も参照し、ストレージ分類と実際の保存先を混同しないようにします。
Jenkins側では、ビルドがチェックアウト、依存関係の解決、コンパイル、テスト、アーカイブのどこで止まったかを確認します。書き込みエラーがなく、ジョブ待ちやネットワーク取得、ツールチェーンのエラーが先行しているなら、容量を原因と決めつけず、該当する記録を別に調査してください。
ワークスペースの残留を調べる
Jenkinsのワークスペースは、ジョブの設定やPipelineの処理により、ビルド終了後も残る場合があります。JenkinsのPipelineとワークスペースの扱いに関する説明を確認し、ジョブごとの実際の動作を調べてください。
同じジョブを並行して動かしている場合は、生成された作業ディレクトリが複数ないかも確認します。JenkinsのPipeline構文ドキュメントで、該当する実行設定やワークスペース指定を照合すると、意図しない残留と並列処理による増加を分けやすくなります。
成功したジョブ、失敗したジョブ、中断されたジョブをそれぞれ確認し、どの条件で清掃されるかを記録します。Workspace Cleanupのステップ仕様に沿って清掃対象を設定しても、失敗時の再現に必要なログやファイルまで消す運用は避けてください。診断資料の保存先を分けてから、対象範囲を限定します。
Xcodeコンポーネントを整理する
ディスクを使用するXcode関連データは、Xcode本体だけではありません。プラットフォームサポート、オプションのコンポーネント、Simulator runtimeを区別し、プロジェクトが必要とするXcodeのバージョンやテスト対象を先に洗い出します。
Appleは、Xcodeのコンポーネント管理から追加コンポーネントを確認し、使わないものを削除して空き容量を回復する方法を案内しています。まず追加のXcodeコンポーネントを管理する公式手順を参照し、対象を確認してから操作してください。
Xcode Simulator runtimeも、必要なテスト先を確認してから扱います。Simulatorを追加するAppleの説明を参考に、チームが使うランタイムを残し、不要と判断した項目はXcodeの管理機能で整理します。保護されたシステム領域を手作業で削除する方法を、通常のMac CIディスク清掃として採用しないでください。
アーカイブとログの保管先を確認する
容量を占めているものがワークスペースやXcodeとは限りません。アーカイブ、シンボルファイル、テストレポート、ビルドログ、一時出力を保存先ごとに確認し、再生成できるキャッシュと、リリース・監査・障害調査に必要な成果物を分けます。
削除の前に、それぞれの成果物について、保管責任者、保存先、保管期間の決め方を確認します。リリースに使ったアーカイブや障害調査のログを、単にディスクを空けるために消すと、後から再現や検証ができなくなるおそれがあります。リリースビルドの検証については、Appleのリリースビルドテスト手順も参照してください。
注意:Finder上の見た目やフォルダ名だけでは、削除してよいか判断できません。保存要件を確認し、削除対象と復旧手順を記録してから清掃してください。
清掃の適合度を確認してから戻す
手当てを選ぶときは、どの問題に効くかだけでなく、再現性や証跡への影響も評価します。以下は優先順位を決めるための定性的な目安です。実際の容量増加や清掃効果は、対象ノードの記録で確認してください。
- ワークスペース清掃:残留ディレクトリが原因なら適合度は高めです。失敗時の調査資料を別に保管できない場合は、先に保存方法を整えます。
- Xcodeコンポーネント整理:使っていないコンポーネントやランタイムが特定できた場合に適合します。必要なテスト対象を確認できない場合は、削除せず依存関係の確認を優先します。
- 成果物の保管見直し:保管ルールが曖昧な場合に有効な確認項目です。公開、監査、障害調査で必要な成果物は、ルールを決めずに削除しません。
- ノードの追加・変更:清掃後も実負荷と保管要件が両立しない場合に検討します。原因を記録できていない段階では、ノード変更だけで問題が解消すると見込まないでください。
- [ ] 空き容量、ビルド失敗時刻、失敗段階、ログを同じ時間帯で照合した。
- [ ] ワークスペース、Xcodeコンポーネント、成果物の占有を別々に確認した。
- [ ] 必要なランタイムと、保持すべきリリース・診断資料を特定した。
- [ ] 削除対象を限定し、清掃前の記録と設定の戻し方を用意した。
- [ ] 清掃後に代表的なビルドとテストを実行し、失敗時の証拠も確認した。
再発記録からノードを見直す
清掃しても容量警告が繰り返される場合は、継続的に増える対象、清掃の実施状況、並列実行によるワークスペース、保管が必要な成果物をジョブ記録から追います。これらを確認してから、清掃頻度の変更で収まるのか、保管方法の変更が必要なのか、Mac CIノードの追加や構成変更が必要なのかを判断します。根拠のない容量しきい値や拡張効果を前提にしないことが重要です。
よくある確認事項
どのディレクトリから調査すればよいですか。
まず、Jenkinsのジョブが使用するワークスペースと、その保存先を確認します。次に、XcodeのコンポーネントやSimulator runtime、最後にアーカイブやログを調べます。du -shなどで対象ごとの使用量を確認し、削除は保存要件を照合した後に行います。
Simulator runtimeを削除しても大丈夫ですか。 対象プロジェクトで使うランタイムを確認し、不要なものだけをXcodeの管理機能から削除します。削除後は、ジョブが必要なシミュレーターを選択できることと、代表的なテストが実行できることを確認してください。
ワークスペースを清掃すると必要なファイルも消えますか。 設定した清掃対象によっては、失敗の再現に必要な作業ファイルが消える可能性があります。ログやテスト結果などを別の保存先に退避し、成功・失敗・中断時の挙動を確認したうえで清掃ルールを適用してください。
どんな場合にMac CIノードの調整を検討しますか。 実際のジョブ記録から容量の増加源を特定し、不要物の整理や保管ルールの変更をしても運用要件を満たせない場合です。必要な成果物を残しながらビルドを継続できるかを確認し、追加・変更の要否を判断してください。
単独のMacを自社で管理する方式は、実機の調達や保守を担う必要があり、固定ノードでは負荷の変動に合わせにくい場合があります。一方、レンタルでも、継続的な重負荷や物理的な接続要件があるなら自社保有が適することがあります。清掃ルールを見直しても一時的なMac CIリソースが必要なら、MACGPUのMac利用案内で利用条件を確認し、Macの構成案内も含めて、必要な期間や運用要件に合うかを比較してください。