在上游作业中显示下游作业的控制台输出

时间:2012-07-07 00:46:45

标签: logging jenkins console

我正在使用Jenkins。

詹金斯有一个上游工作:A 詹金斯有一个下游工作:B

A的控制台日志输出是:

1
2
3

B的控制台日志输出是:

A
B
C

我想要的是:

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

3 个答案:

答案 0 :(得分:1)

不确定你想要达到的目标,但它看起来颇为人为。查看以下方法是否符合您的需求:从作业A 通过Parameterized Trigger Plugin作为构建步骤启动作业B A 有一个选项可以等待 B 然后调整 A 的构建结果,具体取决于 B 的构建结果

答案 1 :(得分:0)

一种快捷简便的方法就是使用curl

即。

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

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

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

答案 2 :(得分:0)

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

我没有找到比使用cat显示作业日志文件更好的方法。您必须以block的身份进行“职位B触发”步骤。因此,作业A直到作业B才完成。然后,在“作业B触发器”步骤之后,添加一个步骤以执行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时,您可以选择。喜欢:

  
      
  • 如果触发的构建效果更差或等于
  • ,则此构建步骤失败   
  • 如果触发的版本差或等于
  • ,则将此版本标记为失败   
  • 如果触发的版本更差或等于
  • ,则将此版本标记为不稳定