在 Jenkins 脚本管道中,从不是由管道直接触发的作业中获取结果
In Jenkins scripted pipeline getting Result from a job which was not directly triggered by the pipeline
我们有一个 Jenkins-Job(作业 A),它将一些工件推送到 git 存储库。此推送会触发一个不同的 Jenkins-Job(作业 B),用于测试新推送的工件。
作业 A 发送一条消息,告知是否一切正常或是否发生错误。但是要使通知的信息完整,作业 A 至少需要知道作业 B 是否成功(有日志会更好)。
我现在想知道是否有可能检索已完成作业的结果,即使该作业不是由需要信息的作业触发的?
还有可能在作业 B 运行 期间阻止作业 A 吗?我找到了 Block Build Plugin,但这只会阻止作业从开始到指定的作业完成。
您是否尝试过使用类似的方法来获取构建结果?之前用它来链接构建 here
node {
try {
// do something that fails
sh "exit 1"
currentBuild.result = 'SUCCESS'
} catch (Exception err) {
currentBuild.result = 'FAILURE'
}
echo "RESULT: ${currentBuild.result}"
}
这是一个非常奇怪的设置。看起来那些应该是阶段而不是单独的工作。仍然可以通过使用 jenkins json API
来获取任何工作的状态
jenkins_url/job/${job_name}/lastBuild/api/json?tree=result,timestamp,estimatedDuration
有趣的问题是 - 如果这些作业是独立触发的,您如何知道要检查的其他作业编号?
我们有一个 Jenkins-Job(作业 A),它将一些工件推送到 git 存储库。此推送会触发一个不同的 Jenkins-Job(作业 B),用于测试新推送的工件。
作业 A 发送一条消息,告知是否一切正常或是否发生错误。但是要使通知的信息完整,作业 A 至少需要知道作业 B 是否成功(有日志会更好)。
我现在想知道是否有可能检索已完成作业的结果,即使该作业不是由需要信息的作业触发的?
还有可能在作业 B 运行 期间阻止作业 A 吗?我找到了 Block Build Plugin,但这只会阻止作业从开始到指定的作业完成。
您是否尝试过使用类似的方法来获取构建结果?之前用它来链接构建 here
node {
try {
// do something that fails
sh "exit 1"
currentBuild.result = 'SUCCESS'
} catch (Exception err) {
currentBuild.result = 'FAILURE'
}
echo "RESULT: ${currentBuild.result}"
}
这是一个非常奇怪的设置。看起来那些应该是阶段而不是单独的工作。仍然可以通过使用 jenkins json API
来获取任何工作的状态jenkins_url/job/${job_name}/lastBuild/api/json?tree=result,timestamp,estimatedDuration
有趣的问题是 - 如果这些作业是独立触发的,您如何知道要检查的其他作业编号?