Jenkins管道:查看子构建作业的日志
我有一个jenkins管道,它运行一个“作业”作为它的一个阶段。我想知道,是否有一种方法可以在管道中查看构建作业的日志,而无需单击作业并查看控制台输出。它只会使您更容易看到故障,而无需多次单击。是的,有一种方法可以做到这一点,不幸的是,它看起来好像没有文档记录:Jenkins管道:查看子构建作业的日志,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我有一个jenkins管道,它运行一个“作业”作为它的一个阶段。我想知道,是否有一种方法可以在管道中查看构建作业的日志,而无需单击作业并查看控制台输出。它只会使您更容易看到故障,而无需多次单击。是的,有一种方法可以做到这一点,不幸的是,它看起来好像没有文档记录: build返回类型为RunWrapper的对象,您可以使用该对象通过getRawBuild()访问Run对象。不幸的是,Run类不可序列化,因此需要将调用封装在@NonCPS方法中 重要的是,getRawBuild()将无法从沙盒中工作
build
返回类型为RunWrapper
的对象,您可以使用该对象通过getRawBuild()
访问Run
对象。不幸的是,Run
类不可序列化,因此需要将调用封装在@NonCPS
方法中
重要的是,getRawBuild()
将无法从沙盒中工作。为了使用它,您要么禁用Groovy沙盒,要么在某个全局共享库中编写包装器
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)
您需要根据需要调整日志行数以检索。
当然,只有当您决定等到子任务完成时,它才会正常工作
另见:
是的,有一种方法可以做到这一点,不幸的是,它看起来好像没有文档记录:
build
返回类型为RunWrapper
的对象,您可以使用该对象通过getRawBuild()
访问Run
对象。不幸的是,Run
类不可序列化,因此需要将调用封装在@NonCPS
方法中
重要的是,getRawBuild()
将无法从沙盒中工作。为了使用它,您要么禁用Groovy沙盒,要么在某个全局共享库中编写包装器
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)
您需要根据需要调整日志行数以检索。
当然,只有当您决定等到子任务完成时,它才会正常工作
另见: