【发布时间】:2018-01-12 05:16:00
【问题描述】:
我在本地开发代码,将其提交到本地存储库,然后将其推送到我的 Bitbucket 服务器。之后我必须通过 ssh 登录到我的生产服务器 像这样:
ssh my-server@my-host.de
pass: very-secure-passs
cd www/myPage
cd git pull origin master
pass: very-secure-pass
我想避免登录到我的生产服务器并让他自动拉取。
我想要 3 个存储库(本地、BitBucket 和生产服务器),所以我不能使用这个解决方案:Do an automatic pull request after pushing to server
我发现了这个问题A hook that let `pull` from VPS when I `push` to Bitbucket,这正是我想要的,但它是从 2013 年开始的,而且答案已经过时了,因为从那时起 BitBucket 发生了变化。
我在这里发现 https://community.atlassian.com/t5/Answers-Developer-Questions/How-can-I-deploy-my-bitbucket-repo-to-my-production-server/qaq-p/565348 有人建议使用名为 HTTP-Request Hook for Bitbucket Server 的免费插件
设置自动“拉动”:每次向中心推送 存储库,您的生产机器会收到通知并拉取 通知库。 Bitbucket Server 提供 serval 插件以 支持通知流程——我用的是Http Request Post Receive Hook:每次推送时,都会联系一个配置好的 URL, 提交一些信息。在我的生产机器上,我设置了一些 Web 服务器,等待这个 HTTP 请求。在收到 HTPP-Request I 评估给定参数并执行操作 (例如:拉取存储库...)
现在我的问题是:
是否可以使用Webhook 代替HTTP-Request 挂钩插件?
我的生产服务器上的文件应该是什么样子,以便它在收到 HTTP 请求时执行拉取请求?我会对 PHP 中的基本示例感兴趣。
【问题讨论】:
-
如果您的生产服务器提供
ftp,也许您可以使用git-ftp解决您的问题,其中指出:Git-ftp -- 以Git 方式上传到FTP 服务器。这意味着在您git push之后,您还必须git ftp push并且您的生产环境将被更新。见:Git Push into Production (FTP) -
你应该期待 jenkins (jenkins.io)。您的关键字是“持续集成”和“持续交付”。周围有一些非常好的工具,因此您无需手动执行任何操作。
标签: php git bitbucket bitbucket-server