GitHub - 使用远程服务器设置自动部署

标签 git azure github

目前,我的生产网站托管在 Azure 上。我使用 git 并将所有提交推送到 GitHub。借助 git hooks 的魔力,当有人将某个分支推送到 GitHub 时,Azure 能够从 GitHub 中提取数据。

如何使用我自己的本地托管临时服务器复制此内容?换句话说,我如何在 GitHub 上设置一个存储库,并且当我推送到它时,通过 git hooks 发送信号、请求或什么来在我的本地服务器上执行自动 pull ?

我知道 Git 不是一个部署软件,但如果我必须在我的本地服务器上编写一种机制来实现这一点,我想知道从哪里开始。如果有帮助的话,我们使用 Microsoft 技术,因此我们在 Windows Server 上运行临时服务器,而我们的生产在 Azure 上。

我知道我需要在服务器上使用回调 url 来执行所需的操作。我想知道人们使用什么方法来完成此操作。例如:在我的回调 url 上,我将如何调用脚本来运行 pull/fetch/clone bash 命令。或其他方法。

如果您需要更多信息,请随时询问。

最佳答案

扩展我的评论,

  1. 您需要定义/创建 callback url在你这边, 需要可公开访问。

  2. github 每当 推送到有问题的分支。

  3. 如果需要,您可以为 Hook 中的命中添加身份验证。

  4. 此调用将通知您的服务器已向 github上的某个分支。

  5. 现在您的服务器应该启动一个部署任务来执行 pull/克隆。

关于此部署任务,有多种方法可以执行此操作,具体细节将根据您的操作方式而有所不同。

一种方法是引入持续集成工具,例如 Jenkins在您的堆栈中,您还可以将其用于不同环境中的常规构建和测试构建。

另一种方法可能是执行一个简单的bash脚本,该脚本会cd $REPO_DIR && git pull originbranchname && service apache2 etc restart

关于GitHub - 使用远程服务器设置自动部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28485281/

相关文章:

azure - 使用 Silverlight 中的 Windows Azure 服务总线

linux - 无法使用 git 命令 - 不允许操作

git - 从本地 git 服务器推送到 gitlab

git - 捆绑提交/在推送时保持提交私有(private)

python - Azure ML执行Python模块: Network I/O Disabled?

GitHub GraphQL 搜索仅限于语言

github - 一种在 github 上显示我所有分支的方法

git - 尽管有 .gitignore,为什么我要提交一堆 desktop.ini 文件?

git - 无法更改 Git 帐户

php - Windows Azure 网站上的 Cakephp 和 PEAR