目前,我的生产网站托管在 Azure 上。我使用 git 并将所有提交推送到 GitHub。借助 git hooks 的魔力,当有人将某个分支推送到 GitHub 时,Azure 能够从 GitHub 中提取数据。
如何使用我自己的本地托管临时服务器复制此内容?换句话说,我如何在 GitHub 上设置一个存储库,并且当我推送到它时,通过 git hooks 发送信号、请求或什么来在我的本地服务器上执行自动 pull ?
我知道 Git 不是一个部署软件,但如果我必须在我的本地服务器上编写一种机制来实现这一点,我想知道从哪里开始。如果有帮助的话,我们使用 Microsoft 技术,因此我们在 Windows Server 上运行临时服务器,而我们的生产在 Azure 上。
我知道我需要在服务器上使用回调 url 来执行所需的操作。我想知道人们使用什么方法来完成此操作。例如:在我的回调 url 上,我将如何调用脚本来运行 pull/fetch/clone bash 命令。或其他方法。
如果您需要更多信息,请随时询问。
最佳答案
扩展我的评论,
您需要定义/创建 callback url在你这边, 需要可公开访问。
github
每当 推送到有问题的分支。如果需要,您可以为 Hook 中的命中添加身份验证。
此调用将通知您的服务器已向 github上的某个分支。
现在您的服务器应该启动一个部署任务来执行 pull/克隆。
关于此部署任务,有多种方法可以执行此操作,具体细节将根据您的操作方式而有所不同。
一种方法是引入持续集成工具,例如 Jenkins在您的堆栈中,您还可以将其用于不同环境中的常规构建和测试构建。
另一种方法可能是执行一个简单的bash脚本,该脚本会cd $REPO_DIR && git pull originbranchname && service apache2 etc restart
。
关于GitHub - 使用远程服务器设置自动部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28485281/