我有一个包含两项作业的 Jenkins 服务器设置
第一份工作轮询开发分支并在 jenkins 服务器上构建项目。然后我有另一项工作来轮询生产分支,这在另一个 Jenkins 奴隶(即登台服务器)上构建了这个分支。此作业经过配置,以便在成功构建后,它应该通过 ssh 将工件发布到生产服务器。
所有 SSH key 均已设置,登台服务器连接到生产服务器,但传输了 0 个文件
using GIT_SSH to set credentials Bitbucket Repo
using .gitcredentials to set credentials
Checking out Revision 89874cc01a9f669df69817b1049b1ab98ecb19d3 (origin/Production)
SSH: Connecting from host [nginx-php-fastcgi]
SSH: Connecting with configuration [AmazonAWS] ...
SSH: Disconnecting configuration [AmazonAWS] ...
SSH: Transferred 0 file(s)
Finished: SUCCESS
我检查了暂存工作区,文件正在那里构建,只是没有发送到产品服务器。有什么建议吗??
我还尝试了不同的删除前缀,如下所示和此处 Jenkins transferring 0 files using publish over SSH plugin
最佳答案
您应该从 Remove prefix
行中删除 /*
编辑:
您的源文件不能位于作业工作区之外。如果您的文件位于工作区的根目录中,只需将其设置为 *
以传输所有工作区文件,或设置为 **/*
以包含子目录。否则指定相对于 ${WORKSPACE}
的模式。
即使添加前导 /
也无法逃脱这一点,因为它所做的只是将其附加到工作区,在您的情况下,它变成 ${WORKSPACE}/var/www/workspace/opms -登台服务器
。即使使用父目录 ../
也不起作用。这是出于安全考虑,否则作业配置器可能会从 Jenkins 服务器传输私有(private)文件。
如果您需要从其他作业获取文件,则需要使用复制工件构建步骤。告诉我您是否属于这种情况,我会进一步解释。
关于Jenkins 0 文件在构建后发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23198641/