11package javaposse.jobdsl.dsl.helpers.step
22
33import com.google.common.base.Preconditions
4- import hudson.util.VersionNumber
54import javaposse.jobdsl.dsl.Context
65import javaposse.jobdsl.dsl.ContextHelper
76import javaposse.jobdsl.dsl.DslContext
@@ -13,10 +12,8 @@ import static com.google.common.base.Strings.isNullOrEmpty
1312import static javaposse.jobdsl.dsl.helpers.LocalRepositoryLocation.LOCAL_TO_WORKSPACE
1413
1514class StepContext implements Context {
16- private static final List<String > VALID_CONTINUATION_CONDITIONS = [' SUCCESSFUL' , ' UNSTABLE' , ' COMPLETED' ]
17-
1815 final List<Node > stepNodes = []
19- private final JobManagement jobManagement
16+ protected final JobManagement jobManagement
2017
2118 StepContext (JobManagement jobManagement ) {
2219 this . jobManagement = jobManagement
@@ -593,81 +590,6 @@ class StepContext implements Context {
593590 }
594591 }
595592
596- /**
597- * phaseName will have to be provided in the closure
598- *
599- * <com.tikal.jenkins.plugins.multijob.MultiJobBuilder>
600- * <phaseName>name-of-phase</phaseName>
601- * <phaseJobs>
602- * <com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
603- * <jobName>job-in-phase</jobName>
604- * <currParams>true</currParams>
605- * <exposedSCM>false</exposedSCM>
606- * <disableJob>false</disableJob>
607- * <configs class="empty-list"/>
608- * <killPhaseOnJobResultCondition>FAILURE</killPhaseOnJobResultCondition>
609- * </com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
610- * </phaseJobs>
611- * <continuationCondition>COMPLETED</continuationCondition>
612- * </com.tikal.jenkins.plugins.multijob.MultiJobBuilder>
613- */
614- void phase (@DslContext (PhaseContext ) Closure phaseContext ) {
615- phase(null , ' SUCCESSFUL' , phaseContext)
616- }
617-
618- void phase (String phaseName , @DslContext (PhaseContext ) Closure phaseContext = null ) {
619- phase(phaseName, ' SUCCESSFUL' , phaseContext)
620- }
621-
622- void phase (String name , String continuationConditionArg , @DslContext (PhaseContext ) Closure phaseClosure ) {
623- PhaseContext phaseContext = new PhaseContext (jobManagement, name, continuationConditionArg)
624- ContextHelper . executeInContext(phaseClosure, phaseContext)
625-
626- VersionNumber multiJobPluginVersion = jobManagement. getPluginVersion(' jenkins-multijob-plugin' )
627-
628- Set<String > validContinuationConditions = new HashSet<String > (VALID_CONTINUATION_CONDITIONS )
629- if (multiJobPluginVersion?. isNewerThan(new VersionNumber (' 1.10' ))) {
630- validContinuationConditions << ' FAILURE'
631- }
632- if (multiJobPluginVersion?. isNewerThan(new VersionNumber (' 1.15' ))) {
633- validContinuationConditions << ' ALWAYS'
634- }
635-
636- Preconditions . checkArgument(phaseContext. phaseName as Boolean , ' A phase needs a name' )
637- Preconditions . checkArgument(
638- validContinuationConditions. contains(phaseContext. continuationCondition),
639- " Continuation Condition needs to be one of these values: ${ validContinuationConditions.join(', ')} "
640- )
641-
642- stepNodes << new NodeBuilder (). ' com.tikal.jenkins.plugins.multijob.MultiJobBuilder' {
643- phaseName phaseContext. phaseName
644- continuationCondition phaseContext. continuationCondition
645- phaseJobs {
646- phaseContext. jobsInPhase. each { PhaseJobContext jobInPhase ->
647- Node phaseJobNode = ' com.tikal.jenkins.plugins.multijob.PhaseJobsConfig' {
648- jobName jobInPhase. jobName
649- currParams jobInPhase. currentJobParameters
650- exposedSCM jobInPhase. exposedScm
651- if (multiJobPluginVersion?. isNewerThan(new VersionNumber (' 1.10' ))) {
652- disableJob jobInPhase. disableJob
653- killPhaseOnJobResultCondition jobInPhase. killPhaseCondition
654- }
655- if (jobInPhase. hasConfig()) {
656- configs(jobInPhase. configAsNode(). children())
657- } else {
658- configs(' class' : ' java.util.Collections$EmptyList' )
659- }
660- }
661-
662- if (jobInPhase. configureClosure) {
663- WithXmlAction action = new WithXmlAction (jobInPhase. configureClosure)
664- action. execute(phaseJobNode)
665- }
666- }
667- }
668- }
669- }
670-
671593 /**
672594 * <dk.hlyh.ciplugins.prereqbuildstep.PrereqBuilder>
673595 * <projects>project-A,project-B</projects>
0 commit comments