我的设置:一个带有两个构建配置的项目(“ci”和“reset dbs”)
“ci”只是项目的常规ci版本
“reset dbs”使用相同的VCS但只触发“common \ database”文件夹中的构建(运行重置测试所需的数据库) (触发模式:+:Common / Database / **)
现在 - 当我将内容检入“数据库”文件夹时,我会这样做 - “重置dbs”构建始终在常规“ci”构建之前运行。
我现在所做的是将“ci”构建的静默期设置为与VCS的轮询间隔相同 - 应该告诉我“reset dbs”总是首先运行吗?
到目前为止似乎工作(几个测试提交) - 但我希望它完全正确。
有更好的方法吗?
我看到另一种方法,就是复制“ci”配置并在重置版本之后触发一个名为“ci after reset”的触发器。然后让常规“ci”排除“数据库”文件夹。感觉就像一个黑客。
谢谢!
更新:整个想法是不必在每次提交时运行“reset dbs”,但只是在需要时 - 并且在这种情况下它必须在“ci”构建之前运行。感谢到目前为止的回复!
答案 0 :(得分:1)
您可以将“reset dbs”配置配置为由checkin(默认值)触发,并通过“reset dbs”配置(称为“依赖”触发器)的完成触发“ci”配置。
答案 1 :(得分:1)
我不知道它是否解决了它,但是在构建触发下有一个名为dependencies的选项卡。在那里,您可以选择必须在当前构建之前运行的构建。
答案 2 :(得分:1)
在最新版本的teamcity中,您可以配置构建优先级。这可以通过以下方式解决您的问题:
设置“ci”和“reset dbs”以在他们应该使用构建触发器模式时触发(正如您似乎已经做过的那样)。触发器应指定对“database”文件夹的更改会触发两种配置。
转到Build Queue - >配置构建优先级。现在给“重置dbs”更高的优先级。