Skip to content
Latchkey

ビルドフィンガープリント - CI/CD用語集の定義

ビルドフィンガープリントは、タスクのすべての入力のハッシュです。2つの実行が同じフィンガープリントを生成するなら、同じ出力を生成するはずなので、2回目はcacheから提供できます。

ビルドフィンガープリントは、タスクの入力(ソースファイル、依存関係、ツールのバージョン、フラグ)から計算されるハッシュで、期待される出力を一意に識別します。これにより、フィンガープリントが一致するとビルドシステムは作業をスキップしたり、cacheされた結果を再利用したりできます。

フィンガープリンティングは、Bazel、Turborepo、Nx のようなツールにおける増分ビルドやcacheに支えられたビルドの背後にある仕組みです。

フィンガープリントに含まれるもの

正しいフィンガープリントは、出力を変え得るすべての入力をハッシュします。ファイルの内容、依存関係グラフ、コンパイラとツールチェーンのバージョン、環境変数、コマンドラインのフラグです。入力を1つ見落とすと古いcache hitが起きます。ハッシュしすぎると不要なcache missが起きます。

CIでは

フィンガープリントにより、pipelineは以前のcommitや兄弟ブランチの作業を再利用できます。見落とされた入力(例えば固定されていないツールのバージョン)は、"自分のマシンでは動く"という類のcacheのバグのよくある原因です。

関連ガイド