当我使用API远程触发作业时,jenkins上的作业说:"由远程主机IP"启动。但是我的工作可以由于不同的原因和来自不同的来源而触发,所以如果我在詹金斯看到工作并直接看到触发原因那就太棒了。
我知道我可以传递一个字符串参数,然后在每个作业中查看参数 - 但这不是很明显。我希望最好在所有工作列表中看到它。类似于:Reason: X Source: N
。
有没有办法做到这一点?
我注意到我们的发布作业采用了我想要的版本参数 - 但我不想滥用它,因为这些版本不是版本。
答案 0 :(得分:4)
我认为您希望将构建名称设置为不同的构建名称,如下所示:
因此,您可以使用Build Name Setter Plugin并使用构建步骤更新构建名称。
对于您的情况,您可以使用:
#${BUILD_NUMBER} ${BUILD_CAUSE}
查看Build Trigger Badge Plugin,它用图标表示构建的原因。
提取作业原因的一种可能性是使用groovy,将currentBuild注入运行时并包含有关原因的信息等。
这会打印第一个(!)原因:
println ("Cause: " + currentBuild.causes[0])
答案 1 :(得分:0)
不幸的是,即使使用Build Trigger Badge插件激活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:
此插件还将当前构建的原因公开为环境变量。