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

whi*_*ick 20 git ssh continuous-integration jenkins 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
Run Code Online (Sandbox Code Playgroud)

在将任何提交推送到GitHub之后,该作业被配置为构建

转移集是:源文件:

/var/lib/jenkins/jobs/20eyes Build/workspace/**/*
Run Code Online (Sandbox Code Playgroud)

删除前缀:

/var/lib/jenkins/jobs/20eyes Build/workspace
Run Code Online (Sandbox Code Playgroud)

小智 24

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

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

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

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

  • 这照顾它,特别是2.1.谢谢! (4认同)

Pop*_*rei 6

首先快速尝试:仅将源文件夹设置为:** / *以查看是否复制了任何文件。如果文件已复制,则请在此处查看如何在此处写入正确的路径


lu_*_*_ko 5

我的建议:

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