sco*_*pio 7 git build-automation tfs2010 azure-devops gated-checkin
我在相应的文件夹中有两个解决方案,例如
SolutionA\SolutionsA.sln
SolutionB\SolutionB.sln
每个解决方案都配置了Gated Check-in构建; 即两个构建定义GatedSolutionA和GatedSolutionB.
现在的情况是,如果我同时检查两个文件夹中的更改,TFS会显示一个对话框,用于选择构建(使用GatedSolutionA下拉,GatedSolutionB)以针对变更集运行.我的变更集在解决方案B中有突破性变化,在解决方案A中有非破坏性变化.即Build GatedSolutionB将失败,但GatedSolutionA将通过.
当我选择GatedSolutionA来构建我的变更集时,TFS将其检入,这反过来使解决方案B处于中断状态,并且对于解决方案B,Gated签入的目的将被取消.
如果我将触发器更改为CI以进行构建定义,则TFS会对两个构建进行排队.
我正在寻找的是相同的行为,即所有Gated构建都排队,如果其中一个失败,应该拒绝变更集.
注意:我不想为这两个解决方案创建单个构建定义.此外,我知道我们可以通过创建两个单独的更改集来避免此问题发生,但这通常发生在开发人员不知道他们有一些文件正在检入解决方案而不是他们正在处理.
我知道您说过您“不想为这两个解决方案创建单个构建定义”,但这实际上是您唯一可行的选择。我建议有两个分支,一个用于功能开发,一个用于集成。让您的开发人员在功能分支中工作,并为这些解决方案使用门控签入(或 CI)构建。定期将功能分支中的更改合并到集成分支中,该集成分支具有可构建所有解决方案的单一门控签入构建定义。这将使集成分支的构建保持干净。
\n 归档时间: |
|
查看次数: |
3612 次 |
最近记录: |