@Test public void shouldGetCurrentMaterialRevisionForMaterial() { MaterialRevisions revisions = new MaterialRevisions(); HgMaterial material = MaterialsMother.hgMaterial(); revisions.addRevision(material, HG_MATERIAL_MODIFICATION); PipelineInstanceModel model = PipelineInstanceModel.createPipeline("pipeline", -1, "label", BuildCause.createWithModifications(revisions, ""), new StageInstanceModels()); assertThat(model.findCurrentMaterialRevisionForUI(material.config()), is(revisions.getMaterialRevision(0))); }
@Test public void shouldFallbackToPipelineFingerpringWhenGettingCurrentMaterialRevisionForMaterialIsNull() { MaterialRevisions revisions = new MaterialRevisions(); HgMaterial material = MaterialsMother.hgMaterial(); HgMaterial materialWithDifferentDest = MaterialsMother.hgMaterial(); materialWithDifferentDest.setFolder("otherFolder"); revisions.addRevision(material, HG_MATERIAL_MODIFICATION); PipelineInstanceModel model = PipelineInstanceModel.createPipeline("pipeline", -1, "label", BuildCause.createWithModifications(revisions, ""), new StageInstanceModels()); assertThat(model.findCurrentMaterialRevisionForUI(materialWithDifferentDest.config()), is(revisions.getMaterialRevision(0))); }
public static void toJSON(OutputWriter writer, TriggerOptions triggerOptions) { PipelineInstanceModel pipelineInstanceModel = triggerOptions.getPipelineInstanceModel(); writer .addLinks(outputLinkWriter -> outputLinkWriter.addAbsoluteLink("doc", Routes.Pipeline.DOC_TRIGGER_OPTIONS) .addLink("self", Routes.Pipeline.triggerOptions(pipelineInstanceModel.getName())) .addLink("schedule", Routes.Pipeline.schedule(pipelineInstanceModel.getName()))) .addChildList("variables", outputListWriter -> triggerOptions.getVariables().forEach(env -> outputListWriter.addChild(envWriter -> { envWriter .add("name", env.getName()) .add("secure", env.isSecure()); if (!env.isSecure()) { envWriter.add("value", env.getValue()); } }) )) .addChildList("materials", outputListWriter -> pipelineInstanceModel.getMaterials() .forEach(material -> outputListWriter.addChild(material(material, pipelineInstanceModel.findCurrentMaterialRevisionForUI(material))))); }