public Map<TriggerDescriptor,Trigger<?>> getTriggersMap() { Map<TriggerDescriptor,Trigger<?>> triggerMap = new HashMap<>(); for (Trigger t : getTriggers()) { TriggerDescriptor td = t.getDescriptor(); triggerMap.put(td, t); } return triggerMap; }
@Override public SCMTrigger getSCMTrigger() { for (Trigger t : getTriggersJobProperty().getTriggers()) { if (t instanceof SCMTrigger) { return (SCMTrigger) t; } } return null; }
@Issue("JENKINS-44621") @Test public void externalTriggersNotRemoved() throws Exception { WorkflowRun b = getAndStartNonRepoBuild("simpleTriggers"); j.assertBuildStatusSuccess(j.waitForCompletion(b)); WorkflowJob job = b.getParent(); PipelineTriggersJobProperty triggersJobProperty = job.getProperty(PipelineTriggersJobProperty.class); assertNotNull(triggersJobProperty); assertEquals(1, triggersJobProperty.getTriggers().size()); List<Trigger> newTriggers = new ArrayList<>(); newTriggers.addAll(triggersJobProperty.getTriggers()); newTriggers.add(new SCMTrigger("1 1 1 * *")); job.removeProperty(triggersJobProperty); job.addProperty(new PipelineTriggersJobProperty(newTriggers)); job.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); j.buildAndAssertSuccess(job); PipelineTriggersJobProperty newProp = job.getProperty(PipelineTriggersJobProperty.class); assertNotNull(newProp); assertEquals(1, newProp.getTriggers().size()); Trigger t = newProp.getTriggers().get(0); assertNotNull(t); assertTrue(t instanceof SCMTrigger); }
@Issue("JENKINS-44149") @Test public void triggersRemoved() throws Exception { WorkflowRun b = getAndStartNonRepoBuild("simpleTriggers"); j.assertBuildStatusSuccess(j.waitForCompletion(b)); WorkflowJob job = b.getParent(); PipelineTriggersJobProperty triggersJobProperty = job.getProperty(PipelineTriggersJobProperty.class); assertNotNull(triggersJobProperty); assertEquals(1, triggersJobProperty.getTriggers().size()); job.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); j.buildAndAssertSuccess(job); assertNull(job.getProperty(PipelineTriggersJobProperty.class)); }
TimerTrigger timerTrigger = getTriggerFromList(TimerTrigger.class, triggerProp.getTriggers()); MockTrigger mockTrigger = getTriggerFromList(MockTrigger.class, triggerProp.getTriggers());
@Test public void simpleTriggers() throws Exception { WorkflowRun b = expect("simpleTriggers") .logContains("[Pipeline] { (foo)", "hello") .logNotContains("[Pipeline] { (Post Actions)") .go(); WorkflowJob p = b.getParent(); PipelineTriggersJobProperty triggersJobProperty = p.getTriggersJobProperty(); assertNotNull(triggersJobProperty); assertEquals(1, triggersJobProperty.getTriggers().size()); TimerTrigger.DescriptorImpl timerDesc = j.jenkins.getDescriptorByType(TimerTrigger.DescriptorImpl.class); Trigger trigger = triggersJobProperty.getTriggerForDescriptor(timerDesc); assertNotNull(trigger); assertTrue(trigger instanceof TimerTrigger); TimerTrigger timer = (TimerTrigger) trigger; assertEquals("@daily", timer.getSpec()); }
@Test public void serializationTriggersGString() throws Exception { WorkflowRun b = expect("serializationTriggersGString") .logContains("[Pipeline] { (foo)", "hello") .logNotContains("[Pipeline] { (Post Actions)") .go(); WorkflowJob p = b.getParent(); PipelineTriggersJobProperty triggersJobProperty = p.getTriggersJobProperty(); assertNotNull(triggersJobProperty); assertEquals(1, triggersJobProperty.getTriggers().size()); TimerTrigger.DescriptorImpl timerDesc = j.jenkins.getDescriptorByType(TimerTrigger.DescriptorImpl.class); Trigger trigger = triggersJobProperty.getTriggerForDescriptor(timerDesc); assertNotNull(trigger); assertTrue(trigger instanceof TimerTrigger); TimerTrigger timer = (TimerTrigger) trigger; assertEquals("@daily", timer.getSpec()); }
SCMTrigger scmTrigger = getTriggerFromList(SCMTrigger.class, triggerProp.getTriggers()); assertTrue(scmTrigger.isIgnorePostCommitHooks()); MockTrigger mockTrigger = getTriggerFromList(MockTrigger.class, triggerProp.getTriggers());
@Ignore("Triggers are set before withEnv is called.") @Test public void envVarInTriggers() throws Exception { WorkflowRun b = expect("envVarInTriggers") .logContains("[Pipeline] { (foo)", "hello") .logNotContains("[Pipeline] { (Post Actions)") .go(); WorkflowJob p = b.getParent(); PipelineTriggersJobProperty triggersJobProperty = p.getTriggersJobProperty(); assertNotNull(triggersJobProperty); assertEquals(1, triggersJobProperty.getTriggers().size()); TimerTrigger.DescriptorImpl timerDesc = j.jenkins.getDescriptorByType(TimerTrigger.DescriptorImpl.class); Trigger trigger = triggersJobProperty.getTriggerForDescriptor(timerDesc); assertNotNull(trigger); assertTrue(trigger instanceof TimerTrigger); TimerTrigger timer = (TimerTrigger) trigger; assertEquals("@daily", timer.getSpec()); }
@Test public void scmAndEmptyTriggersProperty() throws Exception { WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "p"); // Verify the base case behavior. p.setDefinition(new CpsFlowDefinition("echo 'foo'")); assertTrue(p.getTriggers().isEmpty()); r.assertBuildStatusSuccess(p.scheduleBuild2(0)); // Make sure the triggers are still empty. assertTrue(p.getTriggers().isEmpty()); // Now add a trigger. Deliberately keeping the old syntax to make sure it still works. p.setDefinition(new CpsFlowDefinition( "properties([pipelineTriggers([pollSCM(scmpoll_spec: '@daily')])])\n" + "echo 'foo'", true)); WorkflowRun b = r.assertBuildStatusSuccess(p.scheduleBuild2(0)); assertEquals(1, p.getTriggers().size()); PipelineTriggersJobProperty triggerProp = p.getTriggersJobProperty(); SCMTrigger scmTrigger = getTriggerFromList(SCMTrigger.class, triggerProp.getTriggers()); assertNotNull(scmTrigger); assertEquals("@daily", scmTrigger.getSpec()); // Now run a properties step with an empty triggers property and verify that we still have a // PipelineTriggersJobProperty, but with no triggers in it. p.setDefinition(new CpsFlowDefinition("properties([pipelineTriggers()])\n" + "echo 'foo'")); WorkflowRun b2 = r.assertBuildStatusSuccess(p.scheduleBuild2(0)); assertNotNull(p.getTriggersJobProperty()); assertTrue(p.getTriggers().isEmpty()); }
assertNotNull(trigProp); assertEquals(1, trigProp.getTriggers().size()); TimerTrigger.DescriptorImpl timerDesc = j.jenkins.getDescriptorByType(TimerTrigger.DescriptorImpl.class);