2

我有两个工作的 Jenkins 服务器设置

第一份工作轮询开发分支并在詹金斯服务器上构建项目。然后我有另一个工作来轮询生产分支,这会在另一个 jenkins slave 上构建这个分支,它是登台服务器。此作业已配置为在成功构建时应通过 ssh 将工件发布到生产服务器。

已设置所有 SSh 密钥,登台服务器连接到生产服务器,但传输了 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 设置为使用临时服务器上的工作区来部署文件

我检查了暂存工作区和文件正在那里构建,只是没有发送到产品服务器。有什么建议么??

我还尝试了一个不同的删除前缀,如下所示,这里Jenkins 使用通过 SSH 插件发布来传输 0 个文件 我还按照建议尝试了不同的删除前缀路径

4

1 回答 1

2

您应该/*Remove prefix行中删除

编辑:
Source files不能在工作的工作区之外。如果您的文件位于工作区的根目录中,只需将其设置*为传输所有工作区文件或**/*包含子目录。否则指定一个相对于 的模式${WORKSPACE}

即使添加前导/也不会逃避这一点,因为它所做的只是将其附加到工作区,在您的情况下它变为${WORKSPACE}/var/www/workspace/opms-staging-server. 即使使用父目录../也行不通。这是出于安全考虑,否则作业配置器可能会从 Jenkins 服务器传输私有文件。

如果您需要从另一个作业中获取文件,则需要使用Copy Artifacts构建步骤。告诉我这是不是你的情况,我会进一步解释。

于 2014-04-21T13:59:10.697 回答