使用groovy在Jenkins中设置上游项目
我想将一个Freestyle项目复制到一个新作业中,然后使用groovy将一个新的上游项目设置到这个新作业中。 我找不到任何方法让我这样做: 设置一个新的上游项目。有没有其他方法或技巧可以做到这一点使用groovy在Jenkins中设置上游项目,groovy,jenkins,Groovy,Jenkins,我想将一个Freestyle项目复制到一个新作业中,然后使用groovy将一个新的上游项目设置到这个新作业中。 我找不到任何方法让我这样做: 设置一个新的上游项目。有没有其他方法或技巧可以做到这一点 def x = "testproj" def hi=hi.getItem(x) hi.copy(x, "Copy"+x); def newjob=hi.getItem("Copy"+x) //newjob.setUpstreamProject("bar") //<<--? def
def x = "testproj"
def hi=hi.getItem(x)
hi.copy(x, "Copy"+x);
def newjob=hi.getItem("Copy"+x)
//newjob.setUpstreamProject("bar") //<<--?
def di = newjob.getUpstreamProjects()
for ( y in di ) {
println(y.name)
}
def x=“testproj”
def hi=hi.getItem(x)
复制(x,“复制”+x);
def newjob=hi.getItem(“复制”+x)
//setUpstreamProject(“bar”)/带有两个自由式项目和一个下游项目的示例,此剪贴将找到测试顶部并将其设置为现有的TopTest2。 其概念是在项目的getPublisherList的帮助下获取buildtriggers,然后 获取其中的hudson.tasks.BuildTrigger.class 对每一项都要做一个
publishlist.删除(aa) publishlist.添加(新的hudson.tasks.BuildTrigger(“TestTop2”,false))
“上游项目”是一项要求你当前工作的工作——你确定要让自己处于这种循环中吗?你到底想在这里实现什么?
def hudsonInstance = hudson.model.Hudson.instance
hudsonInstance.getItems(hudson.model.Project).each {project ->
if (project.displayName== "TestTop"){
println(project.displayName)
def di = project.getUpstreamProjects()
def triggers=project.getBuildTriggerUpstreamProjects()
for (z in triggers){
println("triggers " + z.getDisplayName())
def pubList = z.getPublishersList()
for(w in pubList){
println(w)
def buildTrigger = w.grep(hudson.tasks.BuildTrigger.class)
println("BT " + buildTrigger)
for(aa in buildTrigger){
println("aa " + aa.getChildProjectsValue())
def newtop = hudsonInstance.getItem("TestTop2")
pubList.remove(aa)
pubList.add( new hudson.tasks.BuildTrigger("TestTop2", false))
}
}
}
}
}
hudsonInstance.rebuildDependencyGraph()