我有一个詹金斯管道正在运行“作业”作为其阶段之一。我想知道,是否有一种方法可以在管道中查看构建作业的日志,而无需单击该作业并查看控制台输出。只需单击几下,便可以更轻松地查看故障。
答案 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)
您需要调整日志行数以检索到您的需求。 当然,只有在您决定等到子工作完成时,它才能正常工作。
另请参阅: