ショートセッション
大きなGitリポジトリをJenkinsで扱うコツ 〜Copy on Writeを使ったディスク節約術〜
講演形式
ショートセッション
講演時間
08月25日(木) 16:40
〜 17:05
講演ルーム
第2会場
受講スキル
- 大きなGitリポジトリを使ってCIビルドをしている経験、興味がある方
- Jenkinsの運用の経験、興味がある方
- macOSで同一内容ファイルのディスク領域を節約した事例に興味のある方
得られる知見
- 大きなGitリポジトリを運用するときに気をつけるべきポイント
- Jenkinsのジョブで大きなGitリポジトリを使うときの工夫
- macOSで同一内容のファイルを複数保持している場合のディスク節約術
セッションの内容
ゲームアセットのGitリポジトリ、モノリポ運用しているGitリポジトリは巨大になりがちです。大きなGitリポジトリをクローンすると、記録されている歴史を全部取得するため、ネットワーク通信量・通信時間が大きくなります。またローカルに保存された.gitディレクトリの容量も大きくなります。この結果、JenkinsのエージェントやGitHub Actionsのセルフホストランナーでは、ジョブのワークスペースによるディスク容量圧迫の原因になります。CIジョブでは大きなリポジトリを複数のジョブで利用することもあるでしょう。同一内容のコピーを複数保持することになり、問題にいっそう拍車がかかります。
本セッションでは大きなGitリポジトリをクローンするときの通信量・ディスク容量を節約するための、リポジトリの設定やgitコマンドのオプションの工夫を紹介します。また、macOSにあるcopy-on-writeの機能を利用して、同一内容のコピーをまとめることでディスクを400GB以上節約できた事例も紹介します。考えかたや注意点などもあわせて解説しますのでJenkins以外の環境でも役に立つでしょう。