【发布时间】:2015-12-04 15:59:08
【问题描述】:
我正在开展一个项目,该项目涉及多个团队使用 SVN 开发相同的应用程序。每个团队在单独的分支中独立开发他们的应用程序部分,然后测试和部署应用程序。成功部署后,团队会将其分支中的代码与主干中的代码进行比较,并使用他们的更改更新主干,以便其他团队也可以获取他们的更改。此外,在部署应用程序之前,团队还将主干中的代码与其分支中的代码进行比较,并使用主干中的最新更改更新其分支,以便他们将部署的代码将包含来自主干的最新更改其他球队。 现在我们想用 Jenkins 自动化这个过程,但是我们发现很难定义一个标准的过程。例如,我们想到了以下方法:
- 团队的开发人员在 SVN 中创建了一个新分支,其中包含来自主干的代码
- 他使用更改更新代码并执行单元测试
- 如果单元测试成功,他会签入分支中的代码,创建标签并触发部署过程
- 包被部署到一些测试环境中(烟雾、功能等),如果测试成功,最终部署到生产环境中
这种方法的问题在于,该团队不包括其他团队在对各种测试环境进行部署时所做的更改。因此解决方法可能是在部署过程中将主干中的最新更新合并到我们的分支中,但这意味着新合并的代码不会在所有测试环境中进行测试。
我们曾想过使用Multi-stage continuous integration,但由于团队不会在同一时间或同一时间段进行部署,因此它行不通。
那么有人对这个方法有想法吗?
【问题讨论】:
标签: svn jenkins merge continuous-integration continuous-deployment