在Jenkins脚本化管道中,从不是直接由管道触发的作业中获取结果

时间:2019-05-08 12:48:10

标签: jenkins-pipeline jenkins-plugins jenkins-groovy

我们有一个Jenkins-Job(职位A),它将一些工件推送到git存储库。此推操作会触发另一个Jenkins-Job(任务B),用于测试新推入的工件。

作业A发送一条消息,告知一切是否正常或是否发生错误。但是要使通知的信息完整,作业A至少需要知道作业B是否成功(拥有日志会更好)。

我现在想知道是否有可能检索完成的作业的结果,即使该作业不是由需要信息的作业触发的?

在作业B运行期间是否也有可能阻止作业A?我找到了“阻止构建插件”,但这只能阻止从开始到指定作业完成的作业。

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用类似的方法来获取构建结果?以前曾用它来建立链here

node {
try {
    // do something that fails
    sh "exit 1"
    currentBuild.result = 'SUCCESS'
} catch (Exception err) {
    currentBuild.result = 'FAILURE'
}
echo "RESULT: ${currentBuild.result}"

}

答案 1 :(得分:0)

这是一个非常奇怪的设置。看起来那些应该是阶段而不是单独的工作。仍然可以通过使用jenkins json API来获取任何作业的状态

jenkins_url/job/${job_name}/lastBuild/api/json?tree=result,timestamp,estimatedDuration

有趣的问题是-您如何知道要单独检查其他作业的号码?