我正在将我的持续测试转移到专用服务器上(自动测试会大大降低我本地笔记本电脑的速度)。我想要的是我的测试服务器(它恰好正在运行 CruiseControl.rb)通过 Git 不断地获取我最新的(提交的)更改——理想情况下,我自己的工作流程没有任何更改。我是唯一从事这个项目的开发人员。
在获得测试服务器之前,我有:
- 我的笔记本电脑作为我的主要开发系统
- 我的本地存储库中有多个分支。
- 本地工作副本,指向其中一个分支。我经常在分支之间切换(通常是为了新功能)。
- 一个 GitHub 帐户,我经常将本地分支推送到镜像的远程分支。(这主要用于异地备份;我不会为我当前的项目共享任何代码)。我尝试至少在每个工作日结束时推送到 GitHub,尽管我偶尔会忘记。
我想保持所有这些完好无损。最重要的是,我现在有:
- 测试服务器
- ...运行 CruiseControl.rb
- 我的测试服务器上的笔记本电脑存储库的克隆。(目前不克隆 GitHub)
- 测试服务器上的本地工作副本,CC 从中构建/测试。
- 这个工作副本指向一个特定的 Git 分支(当然)
我一直在尝试让我的测试服务器自动获取我在笔记本电脑工作副本上正在处理的任何分支并从中构建。(这将在不消耗系统资源的情况下模拟 autotest 的连续测试)。
我尝试过但没有成功的事情:
- git checkout origin/HEAD:这会使文件正常,但会破坏 CruiseControl,因为它不喜欢“无分支”工作副本。
- git checkout --track -b a_branch origin/a_branch:这对于获取文件很有效,并且 CC 喜欢它,但它将测试服务器固定到特定的分支。在笔记本电脑上切换分支时,我将有效地停止测试我当前的工作。
- git checkout --track -b my_testing_branch origin/HEAD:这也获取可构建文件,但它遇到与上述命令相同的问题。从 origin/HEAD 创建分支只会获取“默认”分支的 HEAD,因此它也很粘。
有什么方法可以让我获得一个不涉及对我的工作流程进行重大更改的良好远程连续测试系统(有或没有 git 分支)?