我正在尝试将我们的jenkins构建日志推送到S3。我在构建阶段使用了Groovy插件和以下脚本
// This script should be run in a system groovy script build step.
// The FilePath class understands what node a path is on, not just the path.
import hudson.FilePath
// Get path to console log file on master.
logFile = build.getLogFile()
// Turn this into a FilePath object.
logFilePathOnMaster = new FilePath(logFile)
logFileName = build.envVars["JOB_BASE_NAME"] + build.envVars["RT_RELEASE_STAGING_VERSION"] + '.txt'
// Create remote file path obj to build agent.
remoteLogFile = new FilePath(build.workspace, logFileName)
// Copy contents of master's console log to file on build agent.
remoteLogFile.copyFrom(logFilePathOnMaster)
字符串
然后我使用S3插件推.txt文件到S3。
但是这个脚本从主节点获取构建日志文件。构建日志是如何从从节点传输到主节点的?我可以在没有主节点参与的情况下访问从节点上的构建日志文件吗?
从节点一定是在某个地方构建时保留了构建日志?我似乎找不到它。
1条答案
按热度按时间yfwxisqw1#
我不太熟悉Groovy,但这里是我使用shell脚本工作的解决方案。我使用Jenkins 'Node and Label parameter plugin'在从节点上运行我们的java进程。作业是使用'Build >> Execute Shell'选项触发的。日志被收集到一个文件中,如下所示:
字符串
然后将此日志文件推送到S3:
型
它对我们很有效。希望它也能帮助你。