繁体   English   中英

推送到BitBucket后自动拉出生产服务器

[英]automatic pull on production server after push to BitBucket

我在本地开发代码,将其提交到我的本地repsoitory,然后将其推送到我的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和生产服务器),所以我无法使用此解决方案: 推送到服务器后执行自动拉取请求

我发现这个问题当我向Bitbucket推送时,让我从VPS“拉”出一个钩子,这正是我想要的,但是从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的免费插件, 用于Bitbucket Server

设置自动“拉”:每次推送到中央存储库时,都会通知您的生产机器并通知存储库。 Bitbucket Server提供serval插件来支持通知过程 - 我使用的是Http Request Post Receive Hook:每次推送时,都会联系配置的URL,提交一些信息。 在我的生产机器上,我已经设置了一个小的Web服务器,等待这个HTTP-Request。 收到HTPP-Request后,我会评估给定的参数并执行操作(例如:拉动存储库......)

现在我的问题是:

  1. 是否可以使用Webhook而不是HTTP-Request Hook插件

  2. 我的生产服务器上的文件应该如何显示,以便在收到HTTP-Request时执行拉取请求? 我会对PHP中的一个基本示例感兴趣。

您链接的webhook文档是针对Bitbucket Cloud(bitbucket.org),而不是Bitbucket Server(它是自托管的,还有其他一些URL)。 如果您正在使用BB Cloud,那么HTTP-Request Hook插件将无效,但您链接的文档将会有效。 如果您使用的是BB服务器,则可以使用https://confluence.atlassian.com/bitbucketserver/managing-webhooks-in-bitbucket-server-938025878.html来定义webhook。

对于问题的后半部分 - 如何设置服务器的webhook结束 - 您需要一个小型服务来监听传入的webhook,执行您想要的任何身份验证,然后运行您的pull方法。 有很多方法可以做到这一点,但大多数方法会根据您的首选语言和安全设置以及相关服务器的网络配置而有所不同。 我建议Google搜索“webhook deploy $ LANGUAGE”以查看其他人是如何使用您的首选语言完成的,或者查看是否有可以使用的公共存储库或gist或snippet。

您可以设置一个Jenkins作业,而不是直接尝试使用生产服务器,该作业将在每次提交时将代码推送到生产服务器。 使用Jenkins,您甚至可以自定义解决方案以匹配提交消息中的特定令牌。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM