@Test public void shouldNotScheduleActivePipeline() throws Exception { Pipeline pipeline = PipelineMother.building(mingleConfig); pipeline = dbHelper.savePipelineWithStagesAndMaterials(pipeline); Pipeline newPipeline = manualSchedule(CaseInsensitiveString.str(mingleConfig.name())); assertThat(newPipeline.getId(), is(pipeline.getId())); }
private Pipeline scheduleJobInstancesAndSavePipeline(Pipeline pipeline) { assertNotInserted(pipeline.getId()); for (Stage stage : pipeline.getStages()) { for (JobInstance jobInstance : stage.getJobInstances()) { jobInstance.schedule(); } } this.savePipelineWithStagesAndMaterials(pipeline); long pipelineId = pipeline.getId(); assertIsInserted(pipelineId); return pipeline; }
public List<MaterialRevision> addDependencyRevisionModification( List<MaterialRevision> materialRevisions, DependencyMaterial dependencyMaterial, Pipeline... upstreams) { String stageName = CaseInsensitiveString.str(dependencyMaterial.getStageName()); String label = upstreams[0].getLabel(); List<Modification> modifications = new ArrayList<Modification>(); for (Pipeline upstream : upstreams) { modifications.add( new Modification( new Date(), DependencyMaterialRevision.create( CaseInsensitiveString.str(dependencyMaterial.getPipelineName()), upstream.getCounter(), label, stageName, upstream.findStage(stageName).getCounter()) .getRevision(), label, upstream.getId())); } MaterialRevision depRev = addRevisionsWithModifications( dependencyMaterial, modifications.toArray(new Modification[0])); materialRevisions.add(depRev); return Arrays.asList(depRev); }
@Test public void shouldForceStagePlanWithModificationsSinceLast() throws Exception { Pipeline completedMingle = scheduleAndCompleteInitialPipelines(); pipelineDao.loadPipeline(completedMingle.getId()); TestingMaterial testingMaterial = new TestingMaterial(); mingleConfig.setMaterialConfigs(new MaterialConfigs(testingMaterial.config())); MaterialRevisions revisions = new MaterialRevisions(); revisions.addRevision( testingMaterial, testingMaterial.modificationsSince(null, null, subprocessExecutionContext)); BuildCause buildCause = BuildCause.createManualForced(revisions, Username.ANONYMOUS); dbHelper.saveMaterials(buildCause.getMaterialRevisions()); Pipeline forcedPipeline = instanceFactory.createPipelineInstance( mingleConfig, buildCause, new DefaultSchedulingContext(DEFAULT_APPROVED_BY), md5, new TimeProvider()); pipelineService.save(forcedPipeline); verifyMingleScheduledWithModifications(); }
@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 newPipelineWithAllStagesPassed(PipelineConfig config) throws SQLException { Pipeline pipeline = newPipelineWithFirstStagePassed(config); for (StageConfig stageConfig : config) { if (config.first().equals(stageConfig)) { continue; } Stage instance = instanceFactory.createStageInstance( stageConfig, new DefaultSchedulingContext(GoConstants.DEFAULT_APPROVED_BY), md5, new TimeProvider()); stageDao.saveWithJobs(pipeline, instance); passStage(instance); } return pipelineDao.loadPipeline(pipeline.getId()); }