在开发服务器上测试/预览Github分支

我刚刚从svn移动到github。 我和我的团队运行本地测试,并在中央开发服务器上进行更改和测试。 无论何时我们将更改推送到回购站,我都想自动将更改分配到我的回购站的任何分支到我的开发服务器上的文件夹中。 这将使我和我的团队能够使用我们的中央开发服务器来测试和预览其他代码。

理想情况下,我可以将子域映射到这些不同的分支目录。 即如果分支被称为“重构”,我可能会使用http://refactor.devserver.com进行检查

我想这可能会涉及我的github配置中的一个钩子,触发开发服务器上的脚本? 也许我需要使用像哈德森这样的ci服务器?

编辑:我可以很容易地触发一个脚本来拉主分支 - 我需要做的是将所有更改的分支拉到单独的根文件夹,所以我能够通过它自己的子域轻松地测试任何分支。 (或者一些类似的方式来自动部署和测试任何改变的分支)

非常感谢。


这是我自己的问题的答案的一部分...

我希望团队能够分解代码,并立即能够在像这样的网址上显示它:http://branch-name.devserver.com

我在apache conf中设置了vhost指令来将子域映射到文件夹:

<VirtualHost *:80>
        ServerName www.devserver.com
        ServerAlias *.devserver.com
        VirtualDocumentRoot /var/www/devserver/%1/
</VirtualHost>

我在github或我的本地机器上分支代码。
然后在开发服务器上运行这些命令

cd /var/www/devserver
git clone git@github.com:/user-name/repos-name

将克隆的repos文件夹移至名为分支名称的文件夹,以便它成为子域虚拟主机的根文件夹。

mv repos-name new-branch

然后将主仓库中的仓库切换到新的分支

cd /var/www/devserver/new-branch
git checkout new-branch

它现在可以在http://new-branch.devserver.com上找到

然后,我将更改推送到github上的分支 - 我将它们放在dev服务器上

cd /var/www/devserver/new-branch
git pull

现在 - 如果我想让pull自动发生,我可以设置一个CI服务器来侦听一个git hub hook,这会触发每个分支文件夹中的一个pull。 看起来哈德森可以做到这一点。


我希望找到一个更智能的方法来做到这一点:

  • 没有多次克隆仓库
  • 通过一个单独的命令可以有效地更新所有分支,或者一个钩子,让我只能访问已更新的分支
  • 每个分支都有一个体面的文件夹结构 - 所以我可以在特定的URL上测试任何分支,而不必在每次分支代码时都乱用http配置
  • 可能会自动为新分支创建一个根文件夹,以便它们奇迹般地出现在开发服务器上
  • 欢迎进一步的想法...


    如果您定义了一些自动部署过程,它当然可以使用Hudson完成。 实际上,我在一年前做了类似的设置 - 如果更改推入Hudson主进行的单元测试,并且成功部署到分段。

    链接地址: http://www.djcxy.com/p/90489.html

    上一篇: Testing/previewing Github branches on a dev server

    下一篇: Cloning git directly into web root public