2017-02-13 48 views
0

我在jenkins中很新,我想從jenkins控制檯輸出中過濾掉只有jenkins輸出的我的unix腳本通過jenkins作業運行 爲了簡化我的場景,我有一個返回json輸出的MyScript unix腳本。 jenkins作業使用「Execute shell」構建操作來封裝MyScript執行。 當我運行詹金斯工作,MyScript可被執行,下面輸出詹金斯控制檯輸出的回報:過濾jenkins控制檯輸出的作業

Started by remote host ... 
Building remotely on ... in workspace ... 
Set build name. 
New build name is '#11-/products/software/myScript.py' 
[ScriptWrapper] $ /bin/sh -xe /tmp/hudson9139846468482145951.sh 
+ /products/software/myScript.py -t ... 
{'ip': '...', 'host': '...'} 
Set build name. 
New build name is '#11-/products/software/myScript.py' 
Variable with name 'BUILD_DISPLAY_NAME' already exists, ... 
Finished: SUCCESS 

從上面的輸出,我想過濾出我的UNIX腳本的JSON輸出是「{」 ip':'...','host':'...'}「。 那我們稱之爲通過REST API的詹金斯的工作,我們需要得到只有被叫UNIX腳本的JSON輸出需要它:

curl -s -k -u ... --request GET "https://<jenkins uri>/jenkins/view/ScriptWrapper/job/ScriptWrapper/19/consoleText" 

我們試圖定義一個解析規則文件,但在這我們只能在「Parsed Console Output」jenkins視圖中突出顯示控制檯輸出中的某些行。 此外,它似乎這個「經分析控制檯輸出」是無法通過REST API訪問:

curl -s -k -u ... --request GET "https://<jenkins uri>/jenkins/view/ScriptWrapper/job/ScriptWrapper/19/parsed_console" 

- >它不工作

有什麼辦法可以過濾掉詹金斯控制檯輸出? 我們也在評估使用Jenkins Groovy Postbuild插件的可能性。你認爲它可以幫助嗎? 我事先感謝您的任何建議。

回答

1

如果我理解正確的問題,你希望生成只包含你想要的文本的清潔輸出? 如果是這樣,那麼我建議你修改你的shell腳本以將所需的文本輸出到一個文件中,然後使用Jenkins中的「存檔工件」函數來使文件內容可用,或者使用「html publisher」插件「發佈」該文件。 https://wiki.jenkins-ci.org/display/JENKINS/HTML+Publisher+Plugin

我的第三個選擇可能是修改你的shell腳本,輸出「magic cookies」作爲你想要的字符串的分隔符。 通過這種方式,您可以使用REST API獲取整個控制檯輸出,然後使用簡單的正則表達式輕鬆過濾掉所需的文本。

+0

嗨Timmy, 是的,我們希望只生成腳本返回的json輸出。 第三個選項不適用,如下所示: 1)外部應用程序調用jenkins rest api並且僅期望xml/json結果。 3)myScript返回json輸出 選項html發佈者: ERR目錄'/ jenkins/workspace/ScriptWrapper/response'存在但失敗,但失敗複製到'/ jenkins/jobs/ScriptWrapper/htmlreports/Job_Response' index.html應該如何結構化? 或者myScript應該返回html輸出/應該生成這樣的index.html? – nuvola

+0

嗨提米, 對不起,低於約錯誤使用HTML發行的詳細信息: 選項HTML出版商: HTML DIR:./response 索引頁:指數。html 報告標題:作業回覆 錯誤:目錄'/ jenkins/workspace/ScriptWrapper/response'存在,但未能複製到'/ jenkins/jobs/ScriptWrapper/htmlreports/Job_Response' 錯誤:由於您的構建成功, – nuvola

+0

不確定這些來自html發佈者的錯誤。它應該能夠發佈任何文件。你有沒有試過「存檔神器」功能? –