@Test public void shouldCancelAScheduledJobInCaseThePipelineIsRemovedFromTheConfig_SpecificallyAPipelineRenameToADifferentCaseAndStageNameToADifferentName() throws Exception { Material hgMaterial = new HgMaterial("url", "folder"); String[] hgRevs = new String[] {"h1"}; u.checkinInOrder(hgMaterial, hgRevs); ScheduleTestUtil.AddedPipeline p1 = u.saveConfigWith("PIPELINE_WHICH_WILL_EVENTUALLY_CHANGE_CASE", u.m(hgMaterial)); u.scheduleWith(p1, hgRevs); ScheduleTestUtil.AddedPipeline renamedPipeline = u.renamePipelineAndFirstStage( p1, "pipeline_which_will_eventually_change_case", "NEW_RANDOM_STAGE_NAME" + UUID.randomUUID()); Pipeline p1_2 = u.scheduleWith(renamedPipeline, hgRevs); CruiseConfig cruiseConfig = configHelper.load(); buildAssignmentService.onTimer(); // To Reload Job Plans buildAssignmentService.onConfigChange(cruiseConfig); Stages allStages = stageDao.findAllStagesFor(p1_2.getName(), p1_2.getCounter()); assertThat( allStages.byName(CaseInsensitiveString.str(p1.config.first().name())).getState(), is(StageState.Cancelled)); }
@Deprecated // Only actually passes the first stage. Use newPipelineWithAllStagesPassed instead public Pipeline passPipeline(Pipeline pipeline) { for (Stage stage : pipeline.getStages()) { passStage(stage); } Stages loadedStages = new Stages(); for (Stage stage : pipeline.getStages()) { loadedStages.add(stageDao.stageById(stage.getId())); } Pipeline loadedPipeline = this.pipelineDao.loadPipeline(pipeline.getId()); loadedPipeline.setStages(loadedStages); return loadedPipeline; }
public Pipeline schedulePipelineWithAllStages( PipelineConfig pipelineConfig, BuildCause buildCause) { buildCause.assertMaterialsMatch(pipelineConfig.materialConfigs()); DefaultSchedulingContext defaultSchedulingContext = new DefaultSchedulingContext(GoConstants.DEFAULT_APPROVED_BY); Stages stages = new Stages(); Pipeline pipeline = instanceFactory.createPipelineInstance( pipelineConfig, buildCause, defaultSchedulingContext, md5, new TimeProvider()); for (StageConfig stageConfig : pipelineConfig) { stages.add( instanceFactory.createStageInstance( stageConfig, defaultSchedulingContext, md5, new TimeProvider())); } pipeline.setStages(stages); return scheduleJobInstancesAndSavePipeline(pipeline); }