2016-11-30 92 views
0

我正在嘗試在Jenkins管道作業中獲取一些生成參數。在這種情況下,參數在複選框「this project is parameterized」並在構建時傳遞。在Jenkins管道作業中無法獲取生成參數

在工作中,我叫兩個分支:

parallel firstBranch: { 
    build job: 'Run Blah', parameters: [string(name: 'BLAH', value: '$app.blah.blah')] 

}, secondBranch: { 
    build job: 'Run BlahBlah', parameters: [string(name: 'BLAH', value: '$app.blah.blah')] 
} 

我試過訪問編譯參數:app.blah.blah在這些不同的方式:

  • $ {app.blah。等等}
  • $ app.blah.blah
  • 「$ {} app.blah.blah」
  • app.blah.blah
  • currentBuild.buildVariableResolver.resolve( 「app.blah.blah」)
  • System.getenv( 「app.blah.blah」)

我總是得到一些例外,我可以有所瞭解,但我開始變得非常惱火。它不應該是這個難爲了上帝的緣故在腳本中獲得構建參數。我究竟做錯了什麼?

+0

而在作業定義,你增加了一個「字符串參數」與「app.blah.blah」的名字一起有可能是默認值?假設這都是真的,你是如何將參數傳遞給構建的? –

+0

就是這樣。我通過運行按需參數化版本來傳遞參數。最終找到解決方案。它是參數名稱中的點。 –

回答

0

這是爲我工作:

println blah 

所以我想它應該是夠你做這樣的:

parallel firstBranch: { 
    build job: 'Run Blah', parameters: [string(name: 'BLAH', value: blah)] 

}, secondBranch: { 
    build job: 'Run BlahBlah', parameters: [string(name: 'BLAH', value: blah)] 
} 
+0

是的,它最終成爲構建參數名稱中的點,令人困惑的Groovy。空格和圓點要小心! –

+0

你也可以試試這個:$ {app.blah.blah}但我仍然認爲groovy會考慮每個點的函數調用。 – MaTePe

0

嗯,貌似你不能有圓點你的構建參數名稱! Groovy認爲你正在訪問一個類。吮吸我不能保持我的參數在Ant腳本和Jenkins作業中保持一致,但現在它不是一個大問題。如果有人知道如何訪問虛線變量,請隨時添加輸入!

爲構建參數變量正確的語法:alphanumeric_underline_only

訪問正確的語法:println(alphanumeric_underline_only)

+0

對於未來的讀者,我建議您將您的答案編輯爲正式的答案,並且其他讀者可以使用。在這個網站的答案總是非常有用,並在開發人員的許多谷歌搜索出現。解釋你如何解決它與一個正確的語法的例子。 –

相關問題