Jenkins使用通过SSH插件发布传输0个文件

时间:2014-03-03 21:42:51

标签: git ssh jenkins continuous-integration jenkins-plugins

我想将文件从我的post build Jenkins工作区传输到远程服务器上的某个位置。对于作业中的所有步骤,构建顺利进行,但始终传输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

4 个答案:

答案 0 :(得分:23)

我认为,你的配置问题。 我们有2个职位要配置。

  1. 在系统配置(全局配置)。 - >如果测试ok ==>配置到远程服务器是可以的。
  2. 在您的项目中。 我们将重点关注传输集:(源文件,删除前缀,远程目录)

    2.1源文件:如果它是空白=工作空间目录。    在你的情况下,我认为你应该输入**/*
    2.2删除前缀:有关详细信息,请参阅Here 2.3远程目录:如果它是空白=在上面的系统配置中配置的目录。

  3. 希望有所帮助! 抱歉我的英文。

答案 1 :(得分:5)

首先尝试快速操作:仅使用:** / *设置Source文件夹以查看是否复制了任何文件。如果已复制文件,请查看此处以了解如何编写正确的路径here

答案 2 :(得分:1)

我的建议:

  1. 您应该避免在Jenkins作业名称中使用空格!
    • 在您的情况下:名称20eyes Build可能会在文件/目录匹配中产生一些麻烦
  2. 您应该使用相对路径,而不是绝对路径!
    • 在您的情况下:/var/lib/jenkins/...应替换为来自作业工作区的相对路径
  3. 您不应该复制整个工作区!
    • 仅指定上次构建中的相应文件(例如,目标目录中的WAR文件)
  4. 您应该查看Publish Over plugins 的文档和示例:

答案 3 :(得分:1)

在我的情况下,我在"转移集源文件中使用绝对路径(来自root):"。当我改变相对于工作区的路径时,它工作了!