【发布时间】:2016-12-01 20:25:50
【问题描述】:
我们在 GitHub 分支中构建功能(一个功能分支到一个功能)。我们有一个开发分支和一个主分支。两者都应该始终是绿色的。
我们使用 TeamCity 进行构建和部署。我想要的是,当创建拉取请求(从功能分支到开发)时,TeamCity 会自动构建和测试请求,然后启动 EC2 实例以便手动测试它。然后合并拉取请求时,TeamCity 构建、测试并创建一个 docker 镜像,我们将其推送到 ECS 上。
这一切都有效,除了我们的触发错误。
1) 对于构建拉取请求,VCS 根有一个默认分支设置为develop,并且分支规范为+:refs/pull/(*/merge) - 我们不想单独构建拉取请求,而是构建合并代码。然后我们将其部署到 EC2 实例上进行手动测试。
2) TeamCity 向 GitHub 报告构建拉取请求的状态,并在使用 EC2 实例进行手动测试后,将代码从功能分支合并到开发中。此时,我们要在开发中构建代码,然后将新的微服务推送到 Amazon ECS 上。对于将拉取请求合并到开发中后进行构建,VCS 根有一个默认分支设置为develop。
实际上,1 总是被触发,例如用于提出拉取请求和合并到开发中。 2只有在合并到develop时才会触发,这是正确的。
任何帮助将不胜感激。
编辑
我已经阐明了我们上面使用的两种构建配置
【问题讨论】:
-
您描述的方式听起来像是有两个 VCS 根,或者您正在尝试动态设置默认分支(可能是我解释它的方式)您能否确认您只有一个 VCS 根,并且您不会动态更改默认/分支规范。
-
我们确实有两个用于项目的 VCS 根目录,一个用于每个构建配置的 VCS 根目录。我们不会动态更改默认或分支规范,只是我们对两个 VCS 根进行了不同的设置。
-
啊哈 - 我会质疑是否需要两个 VCS 根,因为这应该可以从一个根上工作 - 你想聊聊这个吗? chat.stackoverflow.com/rooms/117201/evolve-software-ltd
-
确实,不需要两个 VCS 根指向同一个存储库。