2014-03-03 76 views
17

我想將文件從我的發佈版本Jenkins工作區傳輸到遠程服務器上的某個位置。構建工作順利進行,但總是傳輸0個文件。Jenkins使用SSH插件發佈傳輸0個文件

這是控制檯輸出:

Started by user Patrick 
    Building in workspace /var/lib/jenkins/jobs/20eyes Build/workspace 
    Fetching changes from the remote Git repository 
    Fetching upstream changes from https://github.com/project/project.git 
    using .gitcredentials to set credentials 
    Checking out Revision a758e0f8e534271b999a2fc8696b6fd5a3d5e500 (origin/master) 
    executing script: 

    cd /var/www/20eyes-web 
    [SSH] exit-status: 0 
    SSH: Connecting from host [dev1.remotehost] 
    SSH: Connecting with configuration [dev2.remotehost] ... 
    SSH: Disconnecting configuration [dev2.remotehost] ... 
    SSH: Transferred 0 file(s) 
    Build step 'Send files or execute commands over SSH' changed build result to SUCCESS 
    Finished: SUCCESS 

作業被配置爲建立之後的任何承諾推到GitHub上

換乘的是: 源文件:

/var/lib/jenkins/jobs/20eyes Build/workspace/**/* 

刪除前綴:

/var/lib/jenkins/jobs/20eyes Build/workspace 
+0

去那裏你會找到答案https://stackoverflow.com/a/48842747/8327498 – kprocks

回答

19

我認爲,在你的配置問題。 我們有2個配置位置。

  1. 在系統配置(全局配置)。 - >如果測試正常==>配置到遠程服務器是可以的。
  2. 在您的項目。 我們將關注傳輸集:(源文件,刪除前綴,遠程目錄)

    2.1源文件:如果它是空白=工作區目錄。 在你的情況下,我認爲你應該輸入**/*
    2.2刪除前綴:參考Here欲知更多信息。
    2.3遠程目錄:如果它是空的=在上面的系統配置中配置的目錄。

希望它有幫助! 對不起,我的英語。

+4

這照顧了它,特別是2.1。謝謝! – whitepatrick

+0

我試圖複製不在我的工作區中的文件(從/ var/www/到目標虛擬機),但我總是獲得'SSH:轉移0文件' 我嘗試了很多變種/ var/www/mysite「作爲源文件,前綴爲\ * \ * /,或後綴爲/ \ *,/ \ * \ *或/ \ */\ * \ * ...似乎沒有任何工作。 我做錯了什麼? – Balmipour

+0

@Balmipour你有沒有找到一種方法到達你當前作業工作區的父目錄? –

0

我的建議:

  1. 你應該避免在詹金斯作業名稱中使用空格!
    • 你的情況:姓名20eyes Build會產生一些麻煩的文件/目錄匹配
  2. 你應該使用相對路徑,而不是絕對路徑!
    • 你的情況:/var/lib/jenkins/...應該相對路徑,從工作的工作空間
  3. 你不應該複製整個工作區所取代!
    • 僅指定來自上次構建的合適文件(例如,從目標目錄WAR文件)
  4. 您應該檢查文檔和示例Publish Over plugins
+0

感謝您的建議!絕對要解決我的工作以反映你的建議 – whitepatrick

3

快速首先應嘗試的:一套Source文件夾僅帶有:**/*以查看是否有任何文件被複制。如果文件被複制,那麼看看這裏看看如何寫正確的路徑here

1

在我的情況下,我使用「傳輸設置源文件:」中的絕對路徑(從根目錄)。當我改變相對於工作區的路徑時,它工作了!