2014-03-03 37 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

在我的情况下,我使用“传输设置源文件:”中的绝对路径(从根目录)。当我改变相对于工作区的路径时,它工作了!