簡體   English   中英

Jenkins - 我如何將參數從上游傳遞到下游

[英]Jenkins - How can i pass parameters from the Upstream to Downstream

我有3個構建:A - 是控制流的主構建B- Anoter構建C-將在BI想要向A添加String參數后執行,因此用戶將手動輸入一些String,我不知道如何我可以將此參數路由到B.讓我們說這是我的構建流程:

build(“B”)build(“C”)我不知道如何將參數傳遞給B,如果我從構建流程或B構建配置中執行此操作,我該怎么做。

先謝謝Alex

像這樣的東西:

build("B", B_parameter: params["A_parameter"])<br>
build("C")

https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

一種方法是使用參數化觸發器插件: https//wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin

這允許您使用但不限於:

* a set of predefined properties 
* properties from a properties file read from the workspace of the triggering build
* the parameters of the current build

使用Build A,B和C,您可以將th3m設置為參數化構建(即要求參數值)。 這是一個靠近作業配置頁面開頭的設置。 例如,要獲取一個名為MY_ID的參數。 現在可以在構建A中以$ MY_ID訪問它。

現在,當您構建A時,它會提示MY_ID。 然后在作業A中添加一個構建步驟以觸發帶參數的“B”,並將其傳遞給構建A的所有參數。現在構建B還將具有在運行構建A時設置的參數$ MY_ID。

參數化觸發插件是您正在尋找的。 有關如何將參數從主構建傳遞到子構建的詳細信息,請在鏈接中檢查我的答案。

Wooooow,所以經過幾個小時的播放“這個方程式中缺少哪個插件?”后,事實證明這些答案都沒有起作用,因為jenkins更改稱為SECURITY-170

如果您按照此答案中的步驟操作並且未轉發參數,請轉至此其他Stack Overflow應答 ,其中提供了有關問題的詳細信息。 如果你感覺太懶,只想驗證SECURITY-170是問題的症結所在,你可以試試這個臨時解決方案,因為它在重啟后不會持續存在:

  1. 管理Jenkins - >管理節點 - >選擇您的“主人”,無論其名稱如何
  2. 選擇腳本控制台
  3. 將其粘貼並點擊“ Run按鈕: System.setProperty("hudson.model.ParametersAction.keepUndefinedParameters", "true")
  4. 重試不轉發參數的構建

如果這對您有用,您可以查看我在另一個問題上匯總的答案 ,但我建議您在嘗試之前先閱讀問題和答案的背景。

這是我的管道(Master Build A)腳本,用於將參數傳遞給子作業(Child Build B)

build job: 'svn test', parameters: [string(name: 'srcpath', value: params["mainpath"]), string(name: 'revision', value: params["mainrevision"])]

我配置
- mainpath和mainrevision作為管道作業參數,
- srcpath和revision作為子作業參數

暫無
暫無

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

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