目前,我的生产网站托管在Azure上。我使用git并将所有提交推送到GitHub。凭借git hooks
的魔力,当有人将某个分支推送到GitHub时,Azure可以从GitHub中获取。
如何使用我自己的托管服务器复制此内容?换句话说,如何在GitHub上设置一个repo,当我推送它时,通过git hooks发送一个信号,请求或者你有什么要对我的内部部署服务器执行自动拉动?
我知道Git不是一个部署软件,但如果我必须在我的on-prmise服务器上编写一个机制来实现这一点,我想知道从哪里开始。如果它有用,我们使用Microsoft技术,因此我们在Windows Server上运行我们的登台服务器,而我们的产品是在Azure上。
我知道我需要在我的服务器上使用回调网址然后执行所需的任何操作。我想知道人们使用什么方法来实现这一点。例如:在我的回调网址上,我如何调用脚本来运行pull / fetch / clone bash命令。或其他方法。
如果您需要更多信息,请随时提出。
答案 0 :(得分:1)
扩展我的评论,
您需要在自己的末尾定义/创建callback url 需要公开访问。
github
会在git hook
时通过cd $REPO_DIR && git pull origin branchname && service apache2 etc restart
点击此网址
推送到有问题的分支。
如果需要,您可以为钩子中的命中添加身份验证。
此调用将通知您的服务器已对其进行了推送 github上的某个分支。
现在您的服务器应该启动一个部署任务来完成 拉/克隆。
关于此部署任务,有很多方法可以执行此操作,更精细的细节将根据您的操作方式而有所不同。
一种方法是在堆栈中引入持续集成工具,如Jenkins,您也可以将其用于不同环境中的常规和测试版本。
另一种方法是执行一个执行{{1}}的简单bash脚本。