【问题标题】:Is it possible to limit build queue for certain build configuration?是否可以限制某些构建配置的构建队列?
【发布时间】:2012-08-24 23:10:16
【问题描述】:

我正在尝试制定一个有效的设置,以确保编译和部署构建优先于运行测试。我有一个包含两个构建配置的代理:

  • 构建、部署、高级测试(5 分钟)
  • 单元测试、集成测试、冒烟测试(15 分钟)

我已配置触发器,以便每次在 VCS 中发生提交时都会运行构建项目。我想做的是将测试项目排队以较低优先级运行。但是,如果在很短的时间(几分钟)内进行了多次提交,我现在确实想排队很多测试项目。

例如,这是我想要实现的:

  • 12:00 提交
  • 12:02 提交
  • 12:08 提交

构建/部署配置开始于:

  • 12:00(等 5 分钟)
  • 12:05(等 5 分钟)
  • 12:10(等 5 分钟)

测试项目开始于:

  • 12:15(等 15 分钟)

测试项目仅使用最新部署的代码运行一次。我不想让测试项目排队 3 次。

实际上,我只想在代理空闲且已提交未经测试的更改时运行测试项目。这可能吗?如果是这样,实现它的最佳方法是什么?

【问题讨论】:

    标签: teamcity teamcity-7.0


    【解决方案1】:

    对于批量频繁提交,您可以在 VCS 触发器设置中使用“安静期模式”,阅读此 here。为了避免在队列中的配置现在触发构建 - 在 VCS 触发器设置中禁用复选框“在每次签入时触发构建”。

    要管理构建队列优先级,请单击“构建队列”链接,然后单击“配置构建优先级”。在这个地方,您可以管理优先级。阅读更多关于此here 的信息。

    注意:您应该具有系统管理员角色。

    【讨论】:

    • 感谢您花时间回答。 Quiet period 模式可以让我在开始构建之前等待 x 分钟,但它实际上不会阻止将多个构建添加到队列中?
    • 如果你看我上面的例子,5 分钟的安静时间不会导致在 12:07 添加测试项目,然后在 12:13 再次添加。由于构建优先级,测试直到第三次部署后才会运行(正确),但它们会在完全相同的部署上运行两次?即使代理处于空闲状态,较长的静默期也会导致测试运行频率降低。理想情况下,我只想说“当构建队列为空时,如果有任何未经测试的更改,请运行测试”。我不确定这是否可能。
    • 如果您禁用“每次签入时触发构建”并为非测试配置设置高优先级,测试构建将保留在队列中,堆栈更改并等待代理空闲。
    • 哦,对了,如果禁用该选项,队列中的测试构建将被合并?我将对其进行测试,但如果是这样,那将回答我的问题。
    猜你喜欢
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2011-08-22
    相关资源
    最近更新 更多