防止TeamCity取消构建任务。

3
我们有一个数据库测试构建程序,它在运行测试之前首先克隆数据库。我们希望防止用户停止/取消此构建程序。问题是,如果在克隆过程中手动取消/停止构建程序,则会导致数据库出现问题,需要 DBA 进行干预。
是否有方法可以防止构建步骤被取消/停止?
2个回答

1
我认为在TeamCity中你做不到这一点。最好的方法是将克隆过程与TeamCity分离,这样在TeamCity中取消构建不会影响克隆进程。(例如使用Powershell构建步骤调用Start-Process myCloningProcess.exe -Wait。)当然,还有一个更普遍的问题:如何完全防止克隆进程被杀死(例如由工作在TeamCity代理上的某人而非通过TeamCity GUI)?你做不到。因此,以上解决方案只能在TeamCity的上下文中处理风险,不能解决这个更普遍的问题。

谢谢,设置构建执行步骤的设置为“始终执行,即使发出停止构建命令”会起作用吗?我的意思是,即使发出了停止命令,这个步骤还是应该继续执行吗? - Andrew Burns
我认为该设置仅适用于取消操作后的步骤。假设您的构建配置有三个步骤:A、B、C。在构建开始时,当 A 正在运行时,您取消了它。TeamCity 将终止 A,并默认跳过 B 和 C,但由于 C 设置了“始终运行,即使发出构建停止命令”,因此仍会运行 C。如果 C 执行一些关键的清理工作,则这将非常有用。总结一下,这样一个构建将执行 A 和 C 的一半。 - sferencik

1
您可以使用角色和权限进行归档。权限称为“停止构建/从队列中删除”。因此,您可以在TeamCity中创建一个没有停止构建权限的角色,并为数据库克隆创建一个单独的项目。然后授予具有此角色的用户/组访问数据库克隆项目的权限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接