Jenkinsさん、弱点を克服するの巻

以前、川口さんから「Jobの設定と実行環境をJENKINS_HOMEに設定したがために、Jenkins(やHudson)のバックアップが面倒なんだ」的な話を聞いたんですよ。
具体的に言うと、JENKINS_HOMEを丸ごとバックアップすると、そん中にJobのワークスペースやらビルド結果やらが含まれるので本質的にJenkinsのバックアップとは異なるモノも取っちゃうし、バックアップサイズもデカくなるって話(過去のビルド結果は微妙だけど、JobのワークスペースなんてSCMから再取得すれば消えてしまっても困らないでしょ。


何でそんなこと思い出したかというと、久しぶりにJenkinsのシステム設定眺めてたら、こんな設定項目みつけたからよ。

   ↓↓「高度な設定」押す↓↓


ほほう。ヘルプみると workspace と builds とJENKINS_HOMEは用途が違うから、それぞれ適した配置をしてもいいよ的な事が書いてあんね(workspace は揮発しても良い、builds はサイズデカくなるからそれなりのディスクへ、JENKINS_HOMEは大事にしろって感じ?


設定可能な環境変数は以下の3つ

  • ${JENKINS_HOME} ― Jenkins home directory
  • ${ITEM_ROOTDIR} ― Root directory of a job for which the workspace is allocated.
  • ${ITEM_FULLNAME} ― '/'-separated job name, like "foo/bar".

つまり、デフォルトだと${JENKINS_HOME}から始まる${ITEM_ROOTDIR}が設定されているけど、${ITEM_FULLNAME}使えば、他のディレクトリに workspace や builds を設定できるようだ(って、実際試したらできたんだけどさ。


ちなみに、修正のきっかけになったであろうチケットはこいつだと思う。


そんで @ikikko さんが調べてくれたんだけど、v1.421 から入ってたんだと。むむぅ。