1

我的设置:一个项目有两个构建配置(“ci”和“reset dbs”)

  • “ci”只是项目的常规 ci 构建

  • “reset dbs”使用相同的 VCS,但仅触发“common\database”文件夹中的构建(运行测试所需的数据库的重置)(触发模式:+:Common/Database/**)

现在-我希望当我将内容检入“数据库”文件夹时-“重置数据库”构建总是在常规“ci”构建之前运行。

我现在所做的是将“ci”构建的安静期设置为与 VCS 的轮询间隔相同 - 这应该让我“重置 dbs”总是首先运行,对吗?

到目前为止似乎正在工作(几个测试提交) - 但我希望它完全正确。

有一个更好的方法吗?

我看到另一种方法是复制“ci”配置并在重置构建后触发一个名为“ci after reset”的配置。然后让常规的“ci”排除“database”文件夹。感觉就像一个黑客。

谢谢!

更新:整个想法是不必在每次提交时都运行“reset dbs”,而只是在需要时运行——在这种情况下,它必须在“ci”构建之前运行。感谢您迄今为止的回复!

4

3 回答 3

1

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

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

  2. 转到构建队列 -> 配置构建优先级。现在给予“reset dbs”更高的优先级。

于 2012-12-21T09:15:14.687 回答
1

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

于 2009-05-28T17:50:35.430 回答
1

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

于 2009-05-28T17:58:20.440 回答