如何通过Groovy Postbuild将Jenkins构建任务排至队列顶部
实现Jenkins构建任务队列置顶(Groovy Postbuild版)
我来帮你把Build X移到队列最顶端!你已经完成了调度任务的第一步,接下来只需要借助Jenkins原生的队列操作方法就能搞定,下面是补全后的完整代码和细节说明:
// 替换成你的目标任务全名,若任务在文件夹里可写成"Folder/Build X" def targetJob = Jenkins.get().getItemByFullName("Build X") // 先校验任务是否存在 if (!targetJob) { manager.listener.logger.println "Error: Target job 'Build X' not found!" return } // 调度任务到等待队列 def waitingQueueItem = Jenkins.get().getQueue().schedule(targetJob, 0) if (waitingQueueItem == null) { manager.listener.logger.println "Error scheduling ${targetJob.name} to queue!" } else { // 核心操作:将任务移到队列最前端 Jenkins.get().getQueue().moveToFront(waitingQueueItem) manager.listener.logger.println "Success! ${targetJob.name} has been moved to the top of the build queue." }
关键细节拆解:
- 精准定位任务:用
getItemByFullName可以直接获取到嵌套在文件夹中的任务,比单纯的getItem更灵活 - 原生置顶方法:Jenkins的
Queue类自带moveToFront方法,不需要手动调整优先级或修改队列排序逻辑,简单高效 - 容错处理:添加了任务存在性校验和调度失败的日志,方便你在构建控制台排查问题
权限提示:
确保执行这段Groovy脚本的账号拥有Jenkins的Queue/Manage权限,否则会抛出权限不足的异常,无法完成置顶操作
内容的提问来源于stack exchange,提问作者George Cimpoies
相关产品推荐
相关产品推荐

