2015-05-14 74 views
1

我正在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

如何將其複製到執行測試腳本的從節點?無論你在「文件位置」進入

回答

3

,這將是位置保存上傳文件的原文件名可變。

但是,在* nix,既不/也不.是有效的變量名字符,所以你的情況,如果「文件位置」是CUSTOMBUILD/mybuild.zip系統不能創建一個變量${CUSTOMBUILD/mybuild.zip}

該文件雖然仍是擺根據${WORKSPACE}/CUSTOMBUILD/mybuild.zip。您也可以使用此路徑訪問它。

然後可以使用Copy To Slave plugin,從主文件複製到你的奴隸

+0

我結束認爲我的問題在$ {WORKSPACE}部分。將'PACKAGE_PATH = echo「$ {WORKSPACE} /CUSTOMBUILD/mybuild.zip」>> env.txt'作爲參數傳遞給執行程序,然而,PACKAGE_PATH的等價物指向一個不存在的路徑。事實上,當我試圖在主機中使用'find'時,我發現上傳的文件在JENKINS_HOME中,這與作業的工作區不同。請參閱我原文中的**重要信息**。 是的,複製到奴隸插件似乎是我需要的。但是,它依賴於獲取上載文件的路徑。謝謝。 – ac22

+0

嘗試將'CUSTOMBUILD/mybuild.zip'簡單地更改爲'mybuild',然後查看作業的工作區(通過Jenkins UI)。該文件應該在那裏。同樣,這是針對實際要求文件參數的作業。 你用'find'找到的文件就在那裏,因爲那是Jenkins跟蹤過去構建的參數(這是一個參數)。 '$ WORKSPACE'的內容也是不穩定的,並且只能在構建期間依賴於**。 – Slav

+0

我的不好。我在Build步驟中遇到了一個錯誤。我包含了一個清除工作區'rm -rf *'的步驟,這就是在觸發執行程序之前刪除文件參數的原因。非常感謝你! – ac22

0

我找不到工作區下我上傳的文件,所以我使用類似

"%JENKINS_HOME%\jobs\%JOB_NAME%\builds\%BUILD_ID%\fileParameters\myUploadedFile"