Jenkins,指纹制品是什么意思?

22

我的理解

到目前为止,我对artifact的理解是用来确定我的项目是否引用了一个未完成的构建任务的artifact。

问题

我尝试阅读更多(包括Jenkins网站),但我不太确定现在它们到底是做什么。我知道当我推广一个构建时,我可以对artifact进行指纹识别。那么这意味着什么?

2个回答

26
  • 构件 - 指在构建过程中产生的任何东西。
  • 构件指纹 - 记录所选构件的MD5校验和

然后,您可以使用MD5校验和将特定构件跟踪回其生成的构建过程。


谢谢!现在我明白了区别。使用构件,我就无法追踪它们的来源了? - Cher
2
除非您有非常明确定义的命名约定,否则不要这样做。 - Slav

14

除了@Slav的回答之外,Fingerprinting可以帮助Jenkins跟踪哪个版本的文件被哪个依赖的版本使用

引用来自Jenkins页面的示例和工作原理:

例如:

  • 假设您有一个依赖于MIDDLE项目的TOP项目,而MIDDLE项目又依赖于BOTTOM项目。

  • 您正在处理BOTTOM项目。 TOP团队报告说他们正在使用导致空指针异常的bottom.jar,而您(作为BOTTOM团队的成员)认为您在BOTTOM#32中修复了此问题。

  • Jenkins可以告诉您哪些MIDDLE构建和TOP构建正在使用(或未使用)您的bottom.jar#32

它是如何工作的?

文件的fingerprint只是MD5校验和。 Jenkins维护一个md5sum的数据库,并记录每个md5sum,Jenkins记录使用哪些项目的哪些构建。每次运行构建并对文件进行指纹识别时,都会更新此数据库。

为避免过度磁盘使用,Jenkins不存储实际文件。相反,它只存储md5sum及其用途。这些文件可以在以下位置看到

$JENKINS_HOME/fingerprints

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接