2016-02-11 159 views
1

我想將我的測試結果到公衆網頁。複製文件從一個目錄到另一個詹金斯

我成立了「生成後行動」>「後建立的任務」執行腳本。

的腳本是:

cp -r /var/lib/jenkins/jobs/instrumentation-tests/htmlreports/HTML_Report/ /var/www/html/test/

詹金斯輸出:CP:目錄/ var/www/html等/測試不存在

如果我的身份登錄的Linux用戶詹金斯機器運行jenkins,我可以導航到源代碼並查看當前有文件。我可以導航到目的地,看看它是否存在。

此外,我試圖從終端運行該命令作爲jenkins用戶,併成功完成cp。

+0

確定該腳本爲用戶詹金斯執行? – christutty

+0

也許這個工作在奴隸上運行? –

+0

我確實有這個在奴隸上運行,這可能是問題嗎?我將如何解決它? – EGHDK

回答

2

正如你在評論中提到,被一個從機上的構建過程中生成您的測試結果。因此你想將文件複製到/var/www的奴隸,而不是詹金斯主服務器。

有,你可以解決這幾個不同的方式:

  1. 確保構建發生在主服務器上。

    您可以通過在作業配置頁面上選擇「限制可以運行此項目的位置」,然後在文本字段中輸入「master」來完成此操作。

    這確保您的文件複製將在構建結束時起作用,假定Jenkins用戶具有寫權限。

  2. 使用Publish over SSH plugin,將文件直接發佈到/var/www對詹金斯的主人,其他任何計算機。

    這樣做的好處是它可以工作,無論哪個Jenkins構建機器的構建發生在上面。

你也可以拆分的工作分爲兩個部分:一個作業運行測試並生成結果,並高就公佈測試結果。

第一份工作可以在任何機器上運行,並使用「存檔工件」後期製作操作保存生成的HTML文件。然後,它將開始第二份工作 - 通過「構建其他工作」後期製作行動 - 以便進行發佈。

第二項工作可以使用上述任一種方法:使用SSH進行發佈,或確保它在主服務器上運行,並使用簡單的shell步驟與cp

在這兩種情況下,您都可以使用Copy Artifact plugin複製上游構建中存檔的HTML文件。

+0

將分工的路線分爲兩部分。謝謝。我無法獲得SSH插件的工作,但哦。任務1:在從站X上構建並生成報告。發佈任務:啓動任務2.任務2:將報告移動到主站上的適當位置。 – EGHDK

相關問題