Jenkins Pipeline:查看子代作业的日志

时间:2018-07-15 23:52:05

标签: jenkins jenkins-pipeline

我有一个詹金斯管道正在运行“作业”作为其阶段之一。我想知道,是否有一种方法可以在管道中查看构建作业的日志,而无需单击该作业并查看控制台输出。只需单击几下,便可以更轻松地查看故障。

1 个答案:

答案 0 :(得分:0)

是的,有一种方法可以做到这一点,不幸的是,它似乎没有记录:

build返回类型为RunWrapper的对象,您可以使用该对象通过Run访问getRawBuild()对象。不幸的是Run类无法序列化,因此您需要将调用封装在@NonCPS方法中。

重要的是,getRawBuild() 在沙盒中无法使用。为了使用它,您必须禁用Groovy Sandbox或在某些全局共享库中编写包装。

import org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper

@NonCPS
String getLogFromRunWrapper(RunWrapper runWrapper, int logLines) {
    runWrapper.getRawBuild().getLog(logLines).join('\n')
}

RunWrapper buildInfo = build job: 'TestJob'
echo "Log of test job:"
echo getLogFromRunWrapper(buildInfo, 2000)

您需要调整日志行数以检索到您的需求。 当然,只有在您决定等到子工作完成时,它才能正常工作。

另请参阅:

problem

http://javadoc.jenkins.io/plugin/workflow-support/org/jenkinsci/plugins/workflow/support/steps/build/RunWrapper.html