我正在Jenkins的多任務配置作業(Regression_L1)中工作,任務是運行2種測試(test1和test2)。在多配置作業中,它會觸發執行程序作業(Regression_executor)爲選定的測試運行腳本。 Regression_L1作業被限制在matrix_service_jobs節點中運行,而矩陣作業將運行在從節點custom_matrix_service_jobs節點上。 Regression_executor作業被限制爲在具有特定標籤(RL1_Test_Machine)的遠程計算機上運行。jenkins中的訪問文件參數
我的目標是測試開發人員的定製構建。因此,我爲作業添加了文件參數(配置 - 文件位置:CUSTOMBUILD/mybuild.zip)。問題是我如何訪問上傳的文件?
一些重要的信息:
- Regression_executor的工作區:
/home/regressionexec/
- Regression_L1的工作區:
/var/work/matrix_service_jobs/Regression_L1
- Regression_l1矩陣工作區:和
/var/work/workspace_user_matrix/workspace/Regression_L1/TEST_PHASE/test2/label/custom_matrix_service_jobs/
- $ JENKINS_HOME:
var/work/jenkins_home
我不知道在哪裏可以找到上傳的文件,所以我搜索了linux linux find
。其結果是: /var/work/jenkins_home/Regression_L1/TEST_PHASE/test2/label/custom_matrix_service_jobs/builds/${BUILD_NUMBER}/fileParameters/CUSTOMBUILD/mybuild.zip
。
如何將其複製到執行測試腳本的從節點?無論你在「文件位置」進入
我結束認爲我的問題在$ {WORKSPACE}部分。將'PACKAGE_PATH = echo「$ {WORKSPACE} /CUSTOMBUILD/mybuild.zip」>> env.txt'作爲參數傳遞給執行程序,然而,PACKAGE_PATH的等價物指向一個不存在的路徑。事實上,當我試圖在主機中使用'find'時,我發現上傳的文件在JENKINS_HOME中,這與作業的工作區不同。請參閱我原文中的**重要信息**。 是的,複製到奴隸插件似乎是我需要的。但是,它依賴於獲取上載文件的路徑。謝謝。 – ac22
嘗試將'CUSTOMBUILD/mybuild.zip'簡單地更改爲'mybuild',然後查看作業的工作區(通過Jenkins UI)。該文件應該在那裏。同樣,這是針對實際要求文件參數的作業。 你用'find'找到的文件就在那裏,因爲那是Jenkins跟蹤過去構建的參數(這是一個參數)。 '$ WORKSPACE'的內容也是不穩定的,並且只能在構建期間依賴於**。 – Slav
我的不好。我在Build步驟中遇到了一個錯誤。我包含了一個清除工作區'rm -rf *'的步驟,這就是在觸發執行程序之前刪除文件參數的原因。非常感謝你! – ac22