다른 작업 (Multijob 플러그인을 사용하여이 작업에서)을 복사하는 Jenkins 작업 (CopyJob)을 작성하고 모든 다운 스트림 작업을 새로운 작업으로 복사하려고합니다 . 새로운 멀티 잡스 (예 : 특정 지사 또는 지형지 물)에 복사 할 수 있도록 템플릿 역할을하는 멀티 조브를 만드는 것이 좋습니다.Jenkins Multijob 작업과 groovy 작업을 통한 모든 다운 스트림 작업
참조 :
MultiJob_Template
|
+-- Sub1_Template
+-- Sub2_Template
+-- Sub3_Template
CopyJob (Parameters: NewSuffix)
수동으로 트리거 "CopyJob"그것은 새로운 SubJobs으로 새 MultiJob를 생성한다
MultiJob_BranchXYZ
|
+-- Sub1_BranchXYZ
+-- Sub2_BranchXYZ
+-- Sub3_BranchXYZ
지금까지 나는 Multijob을 copiing하고 Subjobs을 copiing와 성공 ,하지만 새로운 멀티 잡이를 실제로 새로운 서브 작업에 의존하게 만드는 방법을 찾지 못했습니다. 합니다 (CopyJob 그루비 스크립트) 내 코드는 지금까지 있습니다 : 나는 실제로 그것을 자신을 해결하기 위해 관리
import jenkins.model.*
import com.tikal.jenkins.plugins.multijob.*
def templateJobName = "MultiJob_Template"
// Retrieve parameters
def newSfx = build.buildVariableResolver.resolve("NewSuffix")
def templateJob = Jenkins.instance.getJob(templateJobName)
// copy Multijob
def newJob = Jenkins.instance.copy(templateJob, 'Multijob_' + newSfx)
newJob.save()
// copy all downstreamjobs
def subs = newJob.getDownstreamProjects()
for (s in subs) {
def oldSubJob = Jenkins.instance.getJob(s.getDisplayName())
def newSubJob = Jenkins.instance.copy(oldSubJob, s.getDisplayName().replaceFirst(/Template/, newSfx))
newSubJob.save()
// how to update the MultiJob_newSfx DownstreamJoblist to use the newSubJob?
// ????
}