如何在构建名称中使用构建原因?

How to use the build cause in build name?

当我使用 API 远程触发作业时,jenkins 上的作业说:"Started by remote host IP"。但是我的工作可能会因不同的原因和不同的来源而触发,所以如果我在 Jenkins 中可以查看工作并直接看到触发原因,那就太好了。

我知道我可以传递一个字符串参数,然后在每个作业中查看参数 - 但这不是很明显。我希望最好在所有工作列表中看到它。类似于:Reason: X Source: N.

有什么办法吗?

我注意到我们的发布作业采用了一个显示我想要的版本参数 - 但我不想滥用它,因为这些运行不是发布。

版本名称

我想你想像这里一样将构建名称设置为不同的名称:

因此您可以使用 Build Name Setter Plugin 并使用构建步骤 更新构建名称

对于您的情况,您可以使用:

#${BUILD_NUMBER} ${BUILD_CAUSE}

事业徽章

查看Build Trigger Badge Plugin,它用图标表示构建的原因。

提取作业原因

提取作业原因的一种可能性是使用 groovy,currentBuild 被注入运行时并包含有关原因等的信息。

这会打印第一个 (!) 原因:

println ("Cause: " + currentBuild.causes[0])

不幸的是,即使激活了 Build Trigger Badge Plugin http://<Your Jenkins>/job/<Your job's name>/api/xml 也没有显示触发原因。

您可以将作业的 HTML 解析为:

<div class="middle-align build-badge" style="width: 100%;">
  <img width="16" height="16" src="/plugin/buildtriggerbadge/images/user-cause.png"
    alt="Trigger UserIdCause : Started by user YourUser" title="Started by user YourUser">
</div>

另见 EnvInject Plugin:

This plugin also exposes the cause of the current build as an environment variable.