我正在使用Jenkins。
詹金斯有一个上游工作:A 詹金斯有一个下游工作:BA的控制台日志输出是:
1
2
3
B的控制台日志输出是:
A
B
C
我想要的是:
有没有办法,我可以在作业A的控制台日志中获取作业B的控制台输出然后,确定JOB“A”是否成功(使用日志解析/ grep关键字来表示失败/错误等)。
答案 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时,您可以选择。喜欢:
- 如果触发的构建效果更差或等于
,则此构建步骤失败- 如果触发的版本差或等于
,则将此版本标记为失败- 如果触发的版本更差或等于
,则将此版本标记为不稳定