我正在运行 TeamCity 2018.1。我似乎无法在任何地方找到这种情况的答案。我发现了类似的问题,但它们并没有完全解决我想要实现的目标:这里和这里
我想要 TeamCity 中的以下流程
1 -> 2.1 -> 3
1 -> 2.2 -> 3
1 -> 2.3 -> 3
2.4 -> 3
2.x 将不同的服务部署到测试环境,3 对测试环境运行冒烟测试,因此我们不需要运行多个。如果 1 被触发,这正是使用 Finish Build Triggers 时发生的情况。它最终使我们的提要变得混乱,并且我们最终在运行中间部署了服务的测试运行,这是我们绝对需要避免的。
要求如下:
- 我希望在 2.x 完成的任何时候触发 3,但我不希望运行 3 的多个构建,就像首先触发 1 的情况一样。
- 我还希望在其默认分支上有签入时触发 3。
- 3 上的触发器不应该在构建链的早期构建任何东西。这是一个昂贵的操作,并且会混淆我们在冒烟测试中的结果(失败是因为测试改变了吗?还是因为我们部署了更新的代码?)
我被引导相信快照依赖可以解决这个问题,但它并没有按照我想要的方式工作。当任何 2.x 成功完成时,它似乎都不会触发 3。此外,我绝对不希望在 3 由 VCS 更改触发时触发 1 或 2.x,无论“使用合适的构建选项”如何,这似乎都会发生很多。
此外,1、2.x 和 3 都从不同的存储库运行,因此它们没有共同的 VCS 根。所有 2.x 版本也是不同的存储库。我们也没有文物可以传递。
我怎样才能实现这个工作流程?
编辑:这可以通过在我的测试运行之前添加一个虚拟构建配置来实现吗?