我不希望 Build Config A 和 Build Config B 同时运行。这是因为它们共享无法同时访问的相同资源。但是,每个构建配置都由单独的代理运行,因此它们可以同时运行。
相反,我希望一个构建配置在触发时等待另一个构建配置(如果它正在运行)完成。例如,如果 Build Config B 开始运行但 Build Config A 已经在运行,则 B 将等到 A 完成,然后 B 将运行。
我不认为快照依赖会起作用,因为它假设一个配置依赖于另一个,这在我的情况下是不正确的。
我不希望 Build Config A 和 Build Config B 同时运行。这是因为它们共享无法同时访问的相同资源。但是,每个构建配置都由单独的代理运行,因此它们可以同时运行。
相反,我希望一个构建配置在触发时等待另一个构建配置(如果它正在运行)完成。例如,如果 Build Config B 开始运行但 Build Config A 已经在运行,则 B 将等到 A 完成,然后 B 将运行。
我不认为快照依赖会起作用,因为它假设一个配置依赖于另一个,这在我的情况下是不正确的。
Keith,有两个插件可以帮助你:第一个是Groovy 插件。它具有在所有项目上创建名称锁定的功能。
第二个是TeamCity.SharedResources。它具有定义共享资源并使用读写锁锁定它们的功能。但是,此插件中定义的资源是按项目定义的。我们正在积极开发这个插件,所以欢迎您在我们的跟踪器中观看它的页面
为了快速而肮脏,只需在项目的兼容代理选项卡上制定规则。他们必须在包含 xxx 的代理名称上运行(无论是什么),那么这些构建只能在该代理上运行,并且永远不会同时运行。
在最新版本的 TeamCity 中,您可以配置此参数。转到编辑配置设置 -> 编辑配置设置并设置参数:
限制同时运行的构建数量(0 - 无限制)