Jenkins:构建完成后如何访问 git 修订版

Jenkins: how to access the git revision after build has finished

我有一个 freestyle (shell) jenkins 作业,在某些情况下,它会检出与开始时不同的 git 树。这背后的原因是程序要求。

一般流程是:

问题:

请假设jenkins保留了几个(不小,不多)作业结果,但我们感兴趣的作业可能会被覆盖。工作区内容未保留,我们希望它保持这种状态。

jenkins 通知外部监控系统不可行。它们是可访问的,但外部系统中的一些附加数据无法绑定到 jenkins 数据。我需要获取一些额外的信息以记录在审核日志中。

非常感谢任何提示。

What is exactly recorded in lastBuiltRevision?

lastBuiltRevision 是构建开始时由 Git 插件检出的提交,即它是 Branches to build[ 中配置的 treeish 指向的提交的 SHA1 =33=]字段。

If this is the sha1 of the git_identifier passed as part of the build parameters how can i get the sha1 of the state of the checkout (detached head) after the build has completed?

lastBuiltRevision 可能是 git_identifier,但前提是您已将 $git_identifier 配置到 Branches to build 字段。

无论如何,如果您稍后在构建步骤中签出另一个提交,Jenkins 对此没有任何记录:lastBuiltRevision 将保留在最初由 Git 插件签出的修订版中.

如果您想自己记录这些信息,这里有一些选项:

  • 您可以将签出的修订回显到文本文件中并将此文件存档为工件
  • 或者您可以滥用 build name or the build description 并在那里包含您最终签出的修订版
  • 或者您可以编写一些聪明的 system groovy scripts 来操纵构建元数据