2017-04-18 50 views
0

我正在爲需要執行幾個sh步驟的Mac上的Jenkins編寫管道腳本。他們中的一些涉及RVM和捆紮機...Jenkins在bash腳本中沒有回聲

sh '#!/bin/bash -xl' + 
    ' && rvm list' + 
    ' && rvm use 2.3.1' + 
    ' && gem install bundler' + 
    ' && which bundler' 

正如你可以看到我有使用hashbang進行RVM和捆紮機的工作,即具有可在登錄shell,但問題是我不」即使使用-xl標誌,也不會在Jenkins中看到任何日誌輸出。

有人知道爲什麼日誌輸出被忽略,以及如何爲此啓用它?

UPDATE

sh returnStdout: true, script: '#!/bin/bash -xl && rvm list && rvm use 2.3.1 && gem install bundler && which bundler' 

日誌輸出:

[Pipeline] sh 
[app_ios_test_automation] Running shell script 
[Pipeline] echo 

回答

0

的 「sh」 的函數具有可選參數。如果你像你這樣稱呼它,你將不會得到腳本的標準輸出。

如果您進入管道作業定義(指定管道腳本本身),應該會看到標有「管道語法」的鏈接。這使您可以嘗試在Jenkins實例中啓用的管道步驟。如果您從下拉菜單中選擇「sh」,然後單擊「高級」按鈕,您將看到可以設置的其他選項,包括「returnStdout」標誌。

+0

非常感謝您指出的語法sh命令@大衛&@Jacob!但它仍然不會爲我工作。請參閱我上面關於如何調用sh的更新以及該部分的日誌輸出的外觀。 – BadmintonCat

+0

此外,其他更簡單的sh調用在我的管道腳本中不使用hashbang做日誌輸出就好了。 – BadmintonCat

0

爲了擴展戴維·卡爾的答案,你可能在尋找這樣的事情:

sh(returnStdout: true, script: "your script here")