使用groovy在Jenkins中设置上游项目

使用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

我想将一个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 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()