簡體   English   中英

將結果從Parameterized Trigger插件傳回

[英]Passing the result back from Parameterized Trigger plugin

我有2個工作:“Helper”和“Main”以及單個jenkins實例(它是主機和執行器)。

幫助程序管理第三方資源並為主作業做准備(准確地說 - 它為應用程序部署進行測試創建環境)。

幫助程序作業的唯一工件是具有為主作業准備的環境IP的單個文件。

在這種情況下,如何將構建從Helper傳遞回Main?

您說您只需要將帶有IP的文件傳遞給“主”作業。 如果您需要的只是IP,那么有更簡單的方法(沒有文件),我將描述兩者。

將工件從一個作業傳遞到另一個作業

在“幫助程序”作業中,您需要從工作區歸檔該文件。

  1. 構建后操作中 ,選擇存檔工件
  2. 放置相對於工作空間的路徑。 您可以使用通配符,或者如果文件名始終相同,則對其進行硬編碼。
  3. 配置此作業以使用其他項目構建步驟上的觸發器/調用構建自動觸發“主”作業。 如果您沒有此插件,可以在此處獲取
  4. 對於要構建的項目 ,請輸入“主要”作業的名稱

現在,在“Main”作業中,您需要從之前的(“Helper”)作業復制此工件。

  1. 對於第一個構建步驟,請選擇“從另一個項目構建步驟復制工件” 如果您沒有此插件,可以在此處獲取
  2. 對於項目名稱 ,輸入“幫助程序”作業的名稱
  3. 對於哪個版本 ,請選擇最新成功構建
  4. 要復制工件 ,請使用**/yourartifactname*.*您的工件名稱將是您在“幫助程序”作業中配置的名稱。 在前面使用**/確保它在到達工件之前將忽略任何目錄結構
  5. 對於Target目錄 ,在“Main”作業的工作空間中指定一個位置,此位置也將復制此文件。
  6. 選中標記展平目錄 ,以便文件直接進入步驟5中指定的位置,否則它將保留其歸檔的目錄結構(在“幫助程序”作業中)

現在,您的“Main”作業在其工作區中具有來自“Helper”作業的文件。 像使用工作區中的任何其他文件一樣使用它

將變量從一個作業傳遞到另一個作業

就像我提到的那樣,如果您只需要一個IP地址,即在“Helper”作業中的某個時間點作為變量,您只需使用其他項目中Trigger / Call構建將其發送到“Main”作業您在“幫助程序”作業的步驟3和4中配置的。 在這種情況下,“Main”作業不需要任何特殊配置。

  1. 配置“幫助程序”作業以使用其他項目構建步驟上的觸發器/調用構建自動觸發“主”作業。 如果您沒有此插件,可以在此處獲取
  2. 對於要構建的項目 ,請輸入“主要”作業的名稱
  3. 單擊添加參數按鈕
  4. 選擇預定義參數
  5. 鍵入VarForMain=$VarFromHelper ,其中VarFromHelper是包含IP地址的“Helper”作業的環境變量, VarForMain是將在“Main”作業中設置為此值的環境變量。 沒有理由為什么這些不能有相同的名稱。

現在,在“Main”作業中,您可以像引用任何其他環境變量一樣引用$VarForMain

接受的答案在我的案例中沒有幫助,但我剛剛想出了一個技巧:

  1. 使用shell命令創建主作業

     echo "PARAMS_FILE=${WORKSPACE}/build-${BUILD_NUMBER}.params" > "${WORKSPACE}/build-${BUILD_NUMBER}.params" 
  2. 將它們添加到構建步驟(編譯未步)創建子作業

  3. 將文件作為參數源傳遞給子構建,並使構建在其腳本中使用一行更新文件,如:

     echo "MY_VAR=some_value" >> "$PARAMS_FILE" 

這樣,所有后續工作都會根據其前任的結果更新環境。

暫無
暫無

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

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