ジェンキンですでに利用可能なマルチジョブについては、Groovy Scriptingを使用して新しいフェーズジョブを追加する必要があります。私はすでに存在するジョブp25_deploy-1を追加する次のようなコードを書いています。
このコードはマルチジョブを作成するために動作していますが、フェーズジョブはJenkins UIにマップされているようには表示されません。私がそれを見るかのように3210は、タグ<killPhaseOnJobResultCondition>
を除き、期待通りに正しく作成されています。フェーズジョブが正しくマップされない理由がわかりませんか?Jenkinsのマルチジョブに新しいフェーズジョブを追加するためのスクリプト
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でそれを行い、さらに既存のジョブを修正したいと考えました。
BLOCKQUOTE