Jenkins Pipeline:查看子构建作业的日志

don*_*eyx 2 jenkins jenkins-pipeline

我有一个詹金斯管道正在运行“作业”作为其阶段之一。我想知道,有没有一种方法可以查看管道中构建作业的日志,而无需单击作业并查看控制台输出。这只会让您更容易地看到失败,而无需多次点击。

Joe*_*g S 6

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

返回build一个类型的对象,您可以使用该对象通过RunWrapper访问该对象。不幸的是,该类不可序列化,因此您需要将调用封装在方法中。RungetRawBuild()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)
Run Code Online (Sandbox Code Playgroud)

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

也可以看看:

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

http://javadoc.jenkins.io/hudson/model/Run.html