对于 jenkins 中已经可用的多作业,需要使用 Groovy Scripting 添加新的阶段作业。我编写了以下 groovy 代码,它添加了一个已经存在的作业 p25_deploy-1。
此代码正在创建多作业,但阶段作业未在 Jenkins UI 中显示为映射。好像我在哪里看到它config.xml
,除了标签之外,它按预期正确创建<killPhaseOnJobResultCondition>
。不确定为什么阶段作业没有正确映射?
import jenkins.model.*
import hudson.model.*
import com.tikal.jenkins.plugins.multijob.*
import com.tikal.jenkins.plugins.multijob.PhaseJobsConfig.*
import com.tikal.jenkins.plugins.multijob.PhaseJobsConfig.KillPhaseOnJobResultCondition.*
import java.lang.String.*
import hudson.model.Descriptor;
import hudson.tasks.Builder;
def jenkinsInstance = jenkins.model.Jenkins.instance
def templateJobName = 'profile_p25'
def templateJob = jenkinsInstance.getJob(templateJobName)
// get MultiJob BuildPhases and clone each PhaseJob
builders = templateJob.getBuilders();
builders.each { b ->
if (b instanceof MultiJobBuilder){
def pj = b.getPhaseJobs()
hudson.model.Describable p1 = new PhaseJobsConfig("p25_deploy-1",null,
true,PhaseJobsConfig.KillPhaseOnJobResultCondition NEVER,null,false,false,null,0,false,true,null,false,false)
pj.add(p1)
}
}
templateJob.save()
// update dependencies
jenkinsInstance.rebuildDependencyGraph()
任何帮助将不胜感激。尝试了很多方法,但无法找出脚本的问题。
我们可以使用 DSL 来创建,但我希望它在 Groovy Scripting 中完成,此外还要修改现有的工作。
块引用