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

时间:2016-04-08 12:30:11

标签: git jenkins version-control revision

我有一个自由式(shell)jenkins工作,在某些情况下会检查一个不同于它的启动的git树。这背后的原因是程序要求。

一般流程是:

  • 使用多个参数创建作业,包括用于构建src checkout的git url的git_identifier
  • 经过一些验证后,我们会在git_identifier上进行结帐(我知道它与以前相同,但仍然如此)
  • 在某些情况下(验证失败,业务规则等)checkout master而不是传递的git_identifier
  • 工作完成,我需要创建一些审核日志。
  • 作业执行由外部系统监控

问题:

  • lastBuiltRevision确切记录了什么?
  • 如果这是作为构建参数的一部分传递的git_identifier的sha1,如何在构建完成后获取结帐状态(分离头)的sha1?

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

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

非常感谢任何提示。

1 个答案:

答案 0 :(得分:1)

  

lastBuiltRevision确切记录了什么?

lastBuiltRevision是构建开始时由Git插件检出的提交,即它是分支构建字段中配置的树形所指向的提交的SHA1。

  

如果这是作为构建参数的一部分传递的git_identifier的sha1,如何在构建完成后获取结帐状态(分离头)的sha1?

lastBuiltRevision可能是git_identifier,但是,如果您已将$git_identifier配置到分支中以构建字段,则只能这样做。

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

如果您想自己记录这些信息,可以选择以下选项:

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