4

我正在使用詹金斯。

Jenkins 有一份上游工作:A
Jenkins 有一份下游工作:B

A 的控制台日志输出为:

1
2
3

B 的控制台日志输出为:

A
B
C

我想要得到的是:

有什么办法,我可以在作业 A 的控制台日志中获取作业 B 的控制台输出,然后决定作业“A”是否成功(使用日志解析/grep 关键字来表示失败/错误等)。

4

3 回答 3

2

不知道你想达到什么,但它看起来相当做作。看看以下方法是否符合您的需求:作为构建步骤,通过参数化触发器插件Job A启动Job B。A可以选择等待B,然后根据B调整A 的构建结果。

于 2012-07-08T08:33:08.597 回答
0

一种快速简便的方法是只使用 curl

IE

curl http://myJenkinsServer:9090/job/ProjectNamel/$childJobLastBuildNumber/consoleFull  | sed "s#<span class="timestamp"><b>##g;s#</b> </span># #g" 

... 其中 $childJobLastBuildNumber 是子/下游作业的最新/最后构建#。

使用 curl 和 sed - 现在我可以在父作业中显示子/下游作业的输出,如果我运行上面的curl | sed ..执行 Shell中的命令。

于 2015-08-03T02:17:55.737 回答
0

获取作业 B 的控制台输出。

我没有找到比使用cat. 您必须将“作业 B 触发器”步骤设置为block. 因此,在工作 B 完成之前,工作 A 不会完成。然后在“job B trigger”步骤之后,添加一个执行shell脚本的步骤。

cat "$JENKINS_HOME/jobs/<PATH_TO_YOUR_JOB>/builds/$TRIGGERED_BUILD_NUMBER_<FOLDER_AND_JOB_NAME>/log"

请注意,这$TRIGGERED_BUILD_NUMBER_<FOLDER_AND_JOB_NAME>是 Jenkins 动态注入的环境变量。

根据作业 B 判断作业 A 是否失败。

您不必解析下游作业的控制台输出。在上游作业的配置中,当触发作业 B 时,您可以选择。喜欢:

  • 如果触发的构建更差或等于,则此构建步骤失败
  • 如果触发的构建更差或等于,则将此构建标记为失败
  • 如果触发的构建更差或等于,则将此构建标记为不稳定
于 2019-01-18T21:55:26.317 回答