我想讓詹金斯使用scp插件將構建的構件複製到另一臺服務器上的存檔目錄。如何讓jenkins將工件複製到動態目錄中?
理想情況下,我希望能夠有目的地是動態的基礎上,構建版本,所以結果想類似/builds/<build version>/
對於構建版本1.2.3.4像它看起來像:
/builds/1.2.3.4/
從閱讀scp插件頁面,它看起來不像這是可能的,但我想這裏的某個人可能已經想通了。
有沒有辦法做到這一點?
將文件中嵌入文件名的工件放在一個目錄中是否更好?
我想讓詹金斯使用scp插件將構建的構件複製到另一臺服務器上的存檔目錄。如何讓jenkins將工件複製到動態目錄中?
理想情況下,我希望能夠有目的地是動態的基礎上,構建版本,所以結果想類似/builds/<build version>/
對於構建版本1.2.3.4像它看起來像:
/builds/1.2.3.4/
從閱讀scp插件頁面,它看起來不像這是可能的,但我想這裏的某個人可能已經想通了。
有沒有辦法做到這一點?
將文件中嵌入文件名的工件放在一個目錄中是否更好?
就像你說的,我不認爲scp插件可以直接做。但是,可能有解決方法。
在您的構建中,您可以使用$ BUILD_NUMBER(或%BUILD_NUMBER%,視情況而定 - > Linux vs Windows)訪問內部版本號。
在任何情況下,作爲腳本的一部分,你可以創建一個$ BUILD_NUMBER目錄的名稱,那麼:
的mkdir -p $ BUILD_NUMBER
- 或 -
MD% BUILD_NUMBER%
因此,舉例來說,一個新的目錄將/path/to/workspace/1.2.3.4
一旦構建完成,你的SCR結束ipt,創建上面的目錄,將你的工件移入它,然後tar/zip目錄。
使用此tar/zip文件作爲您工作的工件。
使用SCP插件這神器傳送到目標機器,並解壓/也把它解壓(假設在/路徑/到/神器/目錄)
,你將有什麼的話,就是/path/to/artifact/directory/1.2.3.4。
對於下一個版本,比如說1.2.3.5,您將創建一個新目錄(名稱爲1.2.3.5),在構建結束時將您的工件移入其中,並將其壓縮並傳輸。 當您在目的地解壓縮它時,您將擁有一個新目錄/path/to/artifact/directory/1.2.3.5,其中包含新構建的工件。
我知道這聽起來很混亂,但實際上很容易實現。
聽起來不錯,我會嘗試。我也在詹金斯板上得到了類似的答案。感謝您的幫助! – afrosteve 2011-03-18 15:19:05
我們正在Jenkins中運行maven2構建,所以我們沒有腳本來完成所有這些工作......即在Maven運行並構建成功之後捆綁Jenkins工件。Maven2作業的作業配置僅允許使用語法來存檔,但不允許將其存檔到網絡設備或scp位置。那可能嗎? –
djb
2011-04-13 18:52:31
您可以在maven的東西運行之前始終使用「Execute Shell」,並創建一個以$ BUILD_NUMBER命名的目錄。然後,您可以使用Maven在該目錄中創建工件,或者在Maven完成後再次使用「Execute Shell」移動工件。它不必是一個單獨的腳本。這有道理,有點: - \? – Sagar 2011-04-13 19:19:12