オリジナル: Fingerprint
相互依存のプロジェクトがある場合、プロジェクトのどのバージョンが、他のプロジェクトのどのバージョンで使用されているのか把握するのは難しくなります。Jenkinsはこれを簡単にする"ファイルの指紋"を提供します。
例えば、MIDDLEプロジェクトに依存するTOPプロジェクトがあり、MIDDLEプロジェクトはBOTTOMプロジェクトに依存するとします。あなたはBOTTOMプロジェクトで作業しています。TOPチームが彼らが使用している bottom.jar
でNPEが発生すると報告すると、あなたは、BOTTOMプロジェクトの#32で修正したはずと思いました。Jenkinsは、どのMIDDLEプロジェクトのビルドとTOPプロジェクトが、 bottom.jar
の#32を使用しているのか教えてくれます。
どうやって設定するの?
ファイル指紋を使用するには、関連するすべてのプロジェクトが、jarファイル(この場合は、 bottom.jar
)のファイル指紋を記録するように設定されている必要があります。
例えば、どのBOTTOMビルドがどのTOPビルドに使用されるのか追跡したいだけであれば、TOPとBOTTOMが bottom.jar
を記録するように設定します。どのMIDDLEビルドがどの bottom.jar
を使用しているのかも知りたいのであれば、MIDDLEも設定します。
ファイル指紋の記録は簡単な操作なので、以下にあげる全ファイルのファイル指紋をとにかく記録するのが一番簡単です。
- プロジェクトが作成するjarファイル
- プロジェクトが依存するjarファイル
ファイル指紋を記録するファイルのサイズやビルドの数ではなく、ファイル指紋を記録するファイルの数がディスク容量に大きく影響を与えます。So unless you have a plenty of disk space, you don't want to fingerprint "*
/
"
.
どのように動くの?
ファイルの指紋は、単にMD5チェックサムです。JenkinsはMD5チェックサムのデータベースを維持し、各MD5チェックサムについて、どのプロジェクトのどのビルドが使用しているか記録します。このデータベースは、ビルドが起動し、ファイルの指紋を取得する毎に更新されます。
必要以上にディスクを使用しないように、Jenkinsは実際のファイルそのものは保存しませんが、その代わりに、MD5チェックサムとその利用状況だけを保存します。そのファイルは、$JENKINS_HOME/fingerprints
にあります。
どうやって使用するの?
この機能を活用する2,3の典型的なシナリオがあります。
BOTTOMプロジェクトを開発していて、どのビルドがBOTTOM #13を使用しているか知りたいケース。
- BOTTOM #13のビルド画面を表示します。
- ビルドの成果物で、
bottom.jar
の"ファイル指紋"のアイコン を選択します。 bottom.jar
を使用しているプロジェクトとビルドが表示されます。
TOPプロジェクトを開発していて、TOP #10が使用している bottom.jar
と middle.jar
のビルドを知りたいケース。
- TOP #10のビルド画面を表示します。
- "指紋を見る"を選択します。
- TOP #10でファイル指紋を記録したファイルとその由来がすべて表示されます。
jarファイルをビルドするTOPプロジェクトがあるとします。また、TOP-TESTプロジェクトもあって、TOPプロジェクトの後に起動し、最新のTOPプロジェクトの成果物で巨大な統合テストを行うとしたとき、TOP #7のテスト結果を知りたいケース。
- TOP #7のビルド画面を表示します。
- ビルドの成果物で、
top.jar
の"ファイル指紋"のアイコン を選択します。 top.jar
を使用しているTOP-TESTのビルドがすべて表示されます。- 選択すると、対応するTOP-TESTのビルド画面が表示され、テスト結果が表示されます。
- TOP-TESTのビルドが表示されなければ、TOP #7を使用したTOP-TESTビルドが起動していません。おそらく、TOP #7をスキップしたか(短時間にTOPビルドがたくさんある場合には可能性があります)、TOP-TESTがビルド中なのかもしれません。