TeamCity pipeline具有多个部署,加入单个测试构建并升级到下一个环境

TeamCity pipeline具有多个部署,加入单个测试构建并升级到下一个环境,teamcity,Teamcity,我正在尝试在TeamCity中构建具有以下属性的部署管道: 多个git回购,每个工件一个 多个环境:开发、质量保证等 能够独立地将单个工件部署到开发人员 能够手动触发从开发人员到QA的已知工件集的升级 只有当工件是新版本时,才在QA中重新部署它 在将任何单个工件部署到Dev之后,将运行整个系统的健全性测试 每次将一组工件升级到QA之后,整个系统测试都会运行 现在,我认为我可以通过快照依赖关系和确保构建重用来实现所有这些。但我不能完全让它工作 我有以下工作: Build1-包工件1 Buil

我正在尝试在TeamCity中构建具有以下属性的部署管道:

  • 多个git回购,每个工件一个
  • 多个环境:开发、质量保证等
  • 能够独立地将单个工件部署到开发人员
  • 能够手动触发从开发人员到QA的已知工件集的升级
  • 只有当工件是新版本时,才在QA中重新部署它
  • 在将任何单个工件部署到Dev之后,将运行整个系统的健全性测试
  • 每次将一组工件升级到QA之后,整个系统测试都会运行
现在,我认为我可以通过快照依赖关系和确保构建重用来实现所有这些。但我不能完全让它工作

我有以下工作:

  • Build1-包工件1
  • Build2-包工件2
  • 部署1-Dev-Build1上的快照依赖项,部署工件1
  • 部署2-Dev-Build2上的快照依赖项,部署工件2
  • Test-Dev-对Dev系统运行测试。具有快照依赖项的源代码触发器
  • 部署1-QA-将工件1部署到QA
  • 部署2-QA-将工件2部署到QA
  • Deploy-QA-用作触发快照依赖关系的触发器Deploy1/2-QA
这篇文章的第二部分是围绕QA展开的,如果问题解决了,就进行部署。它必须以稍微向后的方式结束,因为在理想情况下,我会在一个构建通过“Test-Dev”运行到“Deploy-QA”位之后升级它,然后触发Deploy1和Deploy2进行QA。但是,如果自上次QA发布以来我只在Dev中部署了Build1的新版本,那么我不想将Build2重新部署到QA中。所以我不想仅仅触发“Deploy2-QA”。从理论上讲,通过手动触发“Deploy-QA”,它应该回顾依赖关系并重新使用最后一个“Deploy2-QA”,因为它没有改变,只触发“Deploy1-QA”。但是,每次都会触发QA部署作业。如下面的屏幕截图所示:

如上所示,Test-Dev在VCS更改时触发,并正确地重用了Build2和“Deploy2-Dev”构建

然而,当点击“Deploy-QA”上的Deploy按钮时,它确实触发了build“Deploy2-QA”,该build之前的build具有完全相同的提交和传递给它的build编号。我希望这个构建不会触发。我就是不明白它为什么这么做

如果有人能解决这个问题,那就太好了。但理想情况下,我想要的是一个更好的模式,因为我真正想要的是一个有条件的构建,如果参数与上次相同,就不要运行!一定是更简单的方法