TeamCity Kotlin配置定时构建触发器未显示原因排查
TeamCity Kotlin DSL定时触发器不显示的问题分析及解决
核心问题:触发器放置层级错误
你当前把定时触发器直接写在了project根块中,但TeamCity的触发器(包括定时触发器)默认是绑定到**具体构建配置(buildType)**的,而非顶级项目。如果要给项目下所有构建配置添加全局触发器,需要通过特定配置节点实现,但更常见的场景是给单个构建配置添加触发器。
修正方案
方案1:给单个构建配置添加定时触发器
将触发器代码移到对应的buildType块内,示例如下:
import jetbrains.buildServer.configs.kotlin.triggers.schedule import jetbrains.buildServer.configs.kotlin.v2020_2.buildType buildType { name = "你的构建配置名称" id = RelativeId("YourBuildConfigID") // 其他构建配置设置... triggers { schedule { schedulingPolicy = daily { hour = 5 minute = 30 } triggerBuild = always() withPendingChangesOnly = false } } }
方案2:给项目下所有构建配置添加全局定时触发器
如果需要给项目内所有构建配置统一添加定时触发器,需使用项目的buildTypeSettings配置:
import jetbrains.buildServer.configs.kotlin.triggers.schedule import jetbrains.buildServer.configs.kotlin.triggers project { buildTypeSettings { triggers { schedule { schedulingPolicy = daily { hour = 5 minute = 30 } triggerBuild = always() withPendingChangesOnly = false } } } // 其他项目配置... }
额外注意点
- 检查代码缩进:你原代码中
triggerBuild和withPendingChangesOnly的缩进有误,需确保它们属于schedule块的内部配置(已在修正示例中调整)。 - 配置生效:修改
settings.kts后,要在TeamCity界面中点击Apply或Sync按钮,让配置同步生效。
内容的提问来源于stack exchange,提问作者Georgi Semerdzhiev
相关产品推荐
相关产品推荐

