如何在特性分支上做持续集成
How to do continuous integration on feature branches
我们公司使用git流程并使用持续集成。
这意味着:
- 当有人提交
develop
时,我们的开发服务器构建为 develop.domain.com
- 当有人提交
master
时,我们构建到生产环境
这很好用,但不适用于功能。
我们经常有多个功能,需要公司其他人测试。
所以我想说:
"Build /feature/my-feature/
to feature_1.domain.com
",因此我们内部网络上的任何人都可以非常轻松地访问该功能。
你怎么做到的?
我能想到的可能的解决方案
构建自己的工具:
我们正在考虑构建我们自己的工具,通过 Github 进行身份验证,然后手动获取存储库并为给定的 URL 构建解决方案。
这看起来真的很奇怪 - 它似乎破解了持续集成。
功能切换:
最常见的答案似乎是使用功能切换,但这并不容易让其他人测试/转换功能 on/off。
技术:Git(GitHub)、CruiseControl、Sourcetree、.NET
只是在那里扔东西.. 添加一个名为 BuildToFeature_X 的 ccnet 项目。使用 ccnet 参数来控制构建的内容和位置。参数为:
- FeatureNumber - post 的域。您在示例中使用了 1。
- 分支 URL - 要检出和构建哪个版本控制分支。
ccnet 项目检出 Branch URL 并将其构建到 feature_[FeatureNumber].domain.com.
我们公司使用git流程并使用持续集成。
这意味着:
- 当有人提交
develop
时,我们的开发服务器构建为 develop.domain.com - 当有人提交
master
时,我们构建到生产环境
这很好用,但不适用于功能。
我们经常有多个功能,需要公司其他人测试。
所以我想说:
"Build /feature/my-feature/
to feature_1.domain.com
",因此我们内部网络上的任何人都可以非常轻松地访问该功能。
你怎么做到的?
我能想到的可能的解决方案
构建自己的工具:
我们正在考虑构建我们自己的工具,通过 Github 进行身份验证,然后手动获取存储库并为给定的 URL 构建解决方案。
这看起来真的很奇怪 - 它似乎破解了持续集成。
功能切换:
最常见的答案似乎是使用功能切换,但这并不容易让其他人测试/转换功能 on/off。
技术:Git(GitHub)、CruiseControl、Sourcetree、.NET
只是在那里扔东西.. 添加一个名为 BuildToFeature_X 的 ccnet 项目。使用 ccnet 参数来控制构建的内容和位置。参数为:
- FeatureNumber - post 的域。您在示例中使用了 1。
- 分支 URL - 要检出和构建哪个版本控制分支。
ccnet 项目检出 Branch URL 并将其构建到 feature_[FeatureNumber].domain.com.