如何确保团队城市构建配置以使同一项目按特定顺序运行?

时间:2009-05-15 19:34:53

标签: continuous-integration teamcity

我的设置:一个带有两个构建配置的项目(“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”构建之前运行。感谢到目前为止的回复!

3 个答案:

答案 0 :(得分:1)

您可以将“reset dbs”配置配置为由checkin(默认值)触发,并通过“reset dbs”配置(称为“依赖”触发器)的完成触发“ci”配置。

答案 1 :(得分:1)

我不知道它是否解决了它,但是在构建触发下有一个名为dependencies的选项卡。在那里,您可以选择必须在当前构建之前运行的构建。

答案 2 :(得分:1)

在最新版本的teamcity中,您可以配置构建优先级。这可以通过以下方式解决您的问题:

  1. 设置“ci”和“reset dbs”以在他们应该使用构建触发器模式时触发(正如您似乎已经做过的那样)。触发器应指定对“database”文件夹的更改会触发两种配置。

  2. 转到Build Queue - >配置构建优先级。现在给“重置dbs”更高的优先级。