簡體   English   中英

Jenkins在從屬節點中構建日志

[英]Jenkins build logs in slave nodes

我正在嘗試將我們的詹金斯構建日志推送到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。

但是此腳本從主節點獲取構建日志文件。 如何將構建日志從從節點傳輸到主節點? 我可以在沒有主服務器參與的情況下訪問從屬節點上的構建日志文件嗎?

從節點在構建某個地方時必須保留構建日志嗎? 我似乎找不到它。

我對Groovy不太熟悉,但這是使用Shell腳本為我工作的解決方案。 我正在使用Jenkins的“節點和標簽參數插件”在從屬節點上運行我們的java進程。 使用“ Build >> Execute Shell”選項觸發作業。 日志收集到以下文件中:

    sudo java  -jar xxx.jar | sudo tee -a ${JOB_NAME}/${BUILD_NUMBER}.log 2>&1

然后將此日志文件推送到S3:

    sudo aws --region ap-south-1  s3  cp ${JOB_NAME}/${BUILD_NUMBER}.log  s3://bucket/JenkinsLogs/${JOB_NAME}/${BUILD_NUMBER}.log

它非常適合我們。 希望它也對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM