我正在尝试在本地git服务器上使用Jenkins,以使用git-ftp将新的提交自动发布到FTP服务器。
最初的上传有效,但随后的所有提交都将被忽略。
我添加了一个自由样式项目,并在“源代码管理”中添加了Repo-URL:
file:////Users/me/my_repository.git
凭据为空,因为我们位于本地文件系统上。
控制台输出中没有任何错误。
在构建设置中,我发出shell命令以将更改的文件上传到我的sftp服务器:
git ftp push --user $FTP_USER --passwd $FTP_PASS -b dev -vv --auto-init sftp://my.server.tld:22/home/jenkins-test/dev-branch
初始上传运行良好。但是,一旦我进行更改并将其推送到存储库,Jenkins就不会看到它们,并声称一切都很好。
有什么想法吗?
[编辑]
我发现,当我删除Web服务器上的初始文件并执行另一次git ftp push(使用--auto-init
)时,旧文件被上传了-我不知道它们来自何处。
控制台输出说:
Building in workspace /Users/jenkins/.jenkins/workspace/deploy-test-dev
当我检查此目录中的文件时,它们就是在上一次提交中所做的更改的文件。 las,它们不是要上传到ftp服务器的文件。
是否正在进行某种缓存?
答案 0 :(得分:0)
也许您在作业配置中缺少构建触发器?
由于您的存储库位于本地文件系统上,因此您可能应使用轮询SCM 触发器或FSTrigger Plugin。
答案 1 :(得分:0)
问题出在推送命令上。
代替
git ftp push --user $FTP_USER --passwd $FTP_PASS -b dev -vv --auto-init sftp://my.server.tld:22/home/jenkins-test/dev-branch
我不得不删除-b dev(因为签出后没有任何dev分支)。
这可行
git ftp push --user $FTP_USER --passwd $FTP_PASS -vv --auto-init sftp://my.server.tld:22/home/jenkins-test/dev-branch