Jenkinsを使ってみよう -HDD容量編-

お久しぶりです❗️ミヤチです❗️❗️

前回は付箋を紹介したりしてましたが、今回はプログラマ(エンジニア)として、凄く久々にJenkinsの話を書きたいと思います。

これまでの紹介記事
Jenkinsを使ってみよう -マルチ構成編-
Jenkinsを使ってみよう -ログ系プラグイン編-

さて、ネイティブのゲームをJenkinsによりビルドやコンバートを自動化するとぶつかる問題にHDDの容量問題があります。

特にコンシューマ機ですと、1プラットフォーム辺り、数十GB~数百GBとの元データを各プラットフォーム向けのデータとしてコンバートを走らせるなんてこともざらにあります。
そんな巨大なデータを取り扱うわけですから、なるべく各ジョブで専有されてしまう容量は小さくしたいですよね。
今回は、そんなJenkinsを扱う上でHDDの使用量を減らすTipsを書いていきたいと思います。

1, スレーブマシンを立てる
使用量を減らすなどと言っておいていきなりですが、大量にHDDの容量を要する場合にはもとより扱われるHDDが別れていたほうが、他のジョブに対する影響を減らすことができます。特定のジョブでHDDが専有されてしまい、他のジョブが動かせない!という状況を避ける上でもまずはおすすめしたい方法です。また、同一PC上の別のHDDにスレーブを立てることも可能ですので、「CPUやメモリはまだ余裕ある」と言った場合にはHDDを増設してスレーブ化することも視野に入るかと思います。

2, 各ジョブの「古いビルドの破棄」を使う
ジョブを作成して初期状態のままだと、ビルドの履歴はずっと保存されてしまいます。
ただ、永続的に保存したい情報というのはかなり限定されるかと思います。その為、各ジョブにある「古いビルドの破棄」を有効にして、保存する履歴量を限定的にすることで、使用される容量をある程度絞る事ができます。

3, 各ジョブで取り扱うファイルを最小にする
各ジョブでソースコード管理を指定している場合はtrunkなどから、すべてのデータを取得してくるのではなく、更に細かく必要なものだけ取得するという方法です。
例えば、3Dモデルのコンバートに必要なものであれば、それに必要な*.daeファイルや*.fbxファイル、及びそれのコンバータ類のみを取得すると言った形です。
こうしておけば対応するコンバート処理で不必要なものは含まれないので1つあたりのジョブで専有するHDD容量は最小に収めることが出来る他、細かくジョブが別れることにより、適したスレーブマシンで処理を行うことが可能になるというメリットもあります。

4, 各ワークスペースを定期的にクリーンアップする
各ワークスペース内には、コンパイルやコンバート時の中間データやバージョン管理システムの情報などがあるかと思いますが、これを定期的にクリーンアップしていくことで、不要データを少しでも減らしていくという対応策です。
私はマスター、スレーブ毎に1つクリーンアップ用のジョブを作り、週に1回などに実行するようにしています。もちろん各ジョブが走っていない状況下でないと、ビルドに失敗する恐れやワークスペースの中身が破損する可能性もありますので、すべてのジョブが停止している状況で行い、クリーンアップが終わるまで、走らせないように設定することが求められます。

…このような感じでしょうか、どんな環境かにもよって効果的な手は変わってくるかと思いますが、参考にしていただけると幸いです。
それでは、また次の記事で👋


コメント投稿は締め切りました。