首页 > 解决方案 > 将 Jenkins Job 移动到另一个选项卡的 API?

问题描述

为了将 Jenkins 作业移动到新文件夹或子文件夹中,我找到了大量信息/示例,例如:

如何将詹金斯工作移动到子文件夹?

我还很容易找到有关如何手动(从 GUI)将作业从 Jenkins 选项卡移动到另一个选项卡的信息,例如:

如何在 Jenkins 中将现有工作从一个视图移动到另一个视图?

但是,我找不到有关如何以编程方式将 Jenkins 工作移至新视图的任何信息?我不敢相信这是不可能的......有人有任何暗示吗?

标签: jenkinsgroovyjenkins-pipeline

解决方案


我们的团队有一个电视节目,展示了 Jenkins 的特定视图,当工作有问题时,他们会来这个视图。当 Job 没问题时,它会离开 Tv 视图,如下所示:

import jenkins.model.*
import hudson.model.*

def jobName = "MyJob"
def j = Jenkins.getInstance();
def viewAll = j.getView("All")
def tvView = j.getView("TeamTv")

if(manager.build.getResult() == Result.FAILURE){
    //If FAILURE move to Tv
    def job = viewAll.getJob(jobName)

    if(job != null){
        tvView.add(job)
        viewAll.remove(job)
    }
    manager.build.displayName = "Dudes, we have problem!";       

}else{
    def job = tvView.getJob(jobName)

    if(job != null){
       viewAll.add(job)
       tvView.remove(job)
    }
}

推荐阅读