@Override public SCMTrigger getSCMTrigger() { return delegate.asProject().getTrigger(SCMTrigger.class); } @Override public Collection<? extends SCM> getSCMs() {
/** * Set/mock the supplied trigger onto the supplied {@link AbstractProject} instance. * @param trigger The trigger. * @param project The project. */ public static void setTrigger(GerritTrigger trigger, AbstractProject project) { when(project.getTrigger(GerritTrigger.class)).thenReturn(trigger); HashMap<TriggerDescriptor, Trigger<?>> triggers = new HashMap<TriggerDescriptor, Trigger<?>>(); triggers.put(new GerritTrigger.DescriptorImpl(), trigger); PowerMockito.when(project.getTriggers()).thenReturn(triggers); }
/** * Schedules a polling of this project. * @see SCMTriggerItem#schedulePolling */ public boolean schedulePolling() { if(isDisabled()) return false; SCMTrigger scmt = getTrigger(SCMTrigger.class); if(scmt==null) return false; scmt.run(); return true; }
/** * Sets GerritTrigger interested in specifed gerrit event. * @param patchsetCreated patch set. */ public void makeGerritInterestedInEvent(PatchsetCreated patchsetCreated) { GerritTrigger upstreamGerritTriggerMock = mock(GerritTrigger.class); when(abstractProjectDependencyMock.getTriggers()).thenReturn( Collections.<TriggerDescriptor, Trigger<?>>singletonMap( new GerritTrigger.DescriptorImpl(), upstreamGerritTriggerMock)); when(abstractProjectDependencyMock.getTrigger(GerritTrigger.class)).thenReturn(upstreamGerritTriggerMock); when(upstreamGerritTriggerMock.isInteresting(patchsetCreated)).thenReturn(true); }
GitLabPushTrigger trigger = project.getTrigger(GitLabPushTrigger.class); if (trigger != null) { if (trigger.addCiMessage) { GitLabPushTrigger trigger = project.getTrigger(GitLabPushTrigger.class); if (trigger != null) { if (trigger.addNoteOnMergeRequest) {
/** * Create a queue item caused by the specified gerritCause. * @param gerritCause The gerritCause * @param dependency The dependency project list in a comma-separated string to add to the queue item. * @return the queue item */ private Queue.Item createItem(GerritCause gerritCause, String dependency) { List<Action> actions = new ArrayList<Action>(); actions.add(new CauseAction(gerritCause)); abstractProjectMock = mock(AbstractProject.class); when(abstractProjectMock.getTrigger(GerritTrigger.class)).thenReturn(gerritTriggerMock); when(abstractProjectMock.getTriggers()).thenReturn(triggers); abstractProjectDependencyMock = mock(AbstractProject.class); when(abstractProjectDependencyMock.getTrigger(GerritTrigger.class)).thenReturn(gerritTriggerMock); when(gerritTriggerMock.getDependencyJobsNames()).thenReturn(dependency); when(jenkinsMock.getItem(eq(dependency), any(Item.class), Item.class)).thenReturn(abstractProjectDependencyMock); ItemGroup abstractProjectDependencyMockParent = mock(ItemGroup.class); when(abstractProjectDependencyMockParent.getFullName()).thenReturn(""); when(abstractProjectDependencyMock.getParent()).thenReturn(abstractProjectDependencyMockParent); when(abstractProjectDependencyMock.getName()).thenReturn(dependency); WaitingItem waitingItem = PowerMockito.spy(new WaitingItem(Calendar.getInstance(), abstractProjectMock, actions)); when(waitingItem.getInQueueSince()).thenReturn(System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(GerritDefaultValues.DEFAULT_BUILD_SCHEDULE_DELAY)); return waitingItem; }
public static GitlabBuildTrigger getTrigger(AbstractProject project) { Trigger trigger = project.getTrigger(GitlabBuildTrigger.class); if (trigger == null || !(trigger instanceof GitlabBuildTrigger)) { return null; } return (GitlabBuildTrigger) trigger; }
@Override public SCMTrigger getSCMTrigger() { return delegate.asProject().getTrigger(SCMTrigger.class); } @Override public Collection<? extends SCM> getSCMs() {
/** * Schedules a polling of this project. * @see SCMTriggerItem#schedulePolling */ public boolean schedulePolling() { if(isDisabled()) return false; SCMTrigger scmt = getTrigger(SCMTrigger.class); if(scmt==null) return false; scmt.run(); return true; }
/** * Schedules a polling of this project. */ public boolean schedulePolling() { if(isDisabled()) return false; SCMTrigger scmt = getTrigger(SCMTrigger.class); if(scmt==null) return false; scmt.run(); return true; }
/** * Schedules a polling of this project. */ public boolean schedulePolling() { if(isDisabled()) return false; SCMTrigger scmt = getTrigger(SCMTrigger.class); if(scmt==null) return false; scmt.run(); return true; }
/** * Schedules a polling of this project. */ public boolean schedulePolling() { if (isDisabled()) { return false; } SCMTrigger scmt = getTrigger(SCMTrigger.class); if (scmt == null) { return false; } scmt.run(); return true; }
/** * Schedules a polling of this project. */ public boolean schedulePolling() { if (isDisabled()) { return false; } SCMTrigger scmt = getTrigger(SCMTrigger.class); if (scmt == null) { return false; } scmt.run(); return true; }
/** * support matrix plugin. * * @see JobInfoHelpers#triggerFrom(hudson.model.Job, java.lang.Class) */ @CheckForNull public static <T extends Trigger> T triggerFrom(final Job<?, ?> job, Class<T> tClass) { Job<?, ?> guessJob; if (job instanceof MatrixConfiguration) { guessJob = ((MatrixConfiguration) job).getParent(); } else { guessJob = job; } if (guessJob instanceof AbstractProject<?, ?>) { final AbstractProject<?, ?> abstractProject = (AbstractProject<?, ?>) guessJob; return abstractProject.getTrigger(tClass); } else if (guessJob instanceof ParameterizedJobMixIn.ParameterizedJob) { ParameterizedJobMixIn.ParameterizedJob pJob = (ParameterizedJobMixIn.ParameterizedJob) guessJob; for (Trigger candidate : pJob.getTriggers().values()) { if (tClass.isInstance(candidate)) { return tClass.cast(candidate); } } } return null; }
/** * Remove "Gerrit event" as a trigger in all jobs selecting this server. */ private void removeGerritTriggerInJobs() { for (Job job : getConfiguredJobs()) { if (!(job instanceof AbstractProject)) { logger.warn("Unable to remove Gerrit Trigger ffrom job [" + job.getName() + "]. " + " This feature is only supported for AbstractProject types e.g. Freestyle Jobs."); return; } AbstractProject project = (AbstractProject)job; GerritTrigger trigger = (GerritTrigger)project.getTrigger(GerritTrigger.class); trigger.stop(); try { project.removeTrigger(trigger.getDescriptor()); } catch (IOException e) { logger.error("Error removing Gerrit trigger from job [" + job.getName() + "]. Please check job config"); } trigger = null; try { job.save(); } catch (IOException e) { logger.error("Error saving configuration of job [" + job.getName() + "] while trying to remove Gerrit server [" + name + "]. Please check job config."); } } }
/** * Test that it should not block item without GerritTrigger configured. */ @Test public void shouldNotBlockItemWithoutGerritTrigger() { Item item = createItemWithOneSlave(new PatchsetCreated()); when(abstractProjectMock.getTrigger(GerritTrigger.class)).thenReturn(null); assertNull("Build should not be blocked", dispatcher.canRun(item)); }
/** * Test that it should not block item without GerritTrigger configured. */ @Test public void shouldNotBlockItemWithoutGerritTrigger() { Queue.Item item = createItem(new PatchsetCreated(), null); when(abstractProjectMock.getTrigger(GerritTrigger.class)).thenReturn(null); assertNull("Build should not be blocked", dispatcher.canRun(item)); }
/** * Tests a scenario when one build is successful and configured to be skipped. * Expected outcome is that * {@link BuildMemory.MemoryImprint#wereAllBuildsSuccessful()} will return true * As before the skip vote feature was implemented. */ @Test public void testWereAllBuildsSuccessfulOneSuccessfulAndSkipped() { PatchsetCreated event = Setup.createPatchsetCreated(); BuildMemory instance = new BuildMemory(); SkipVote skipVote = new SkipVote(true, false, false, false); GerritTrigger trigger = mock(GerritTrigger.class); when(trigger.getSkipVote()).thenReturn(skipVote); when(project.getTrigger(eq(GerritTrigger.class))).thenReturn(trigger); triggers.put(descriptor, trigger); when(build.getResult()).thenReturn(Result.SUCCESS); instance.started(event, build); instance.completed(event, build); MemoryImprint memoryImprint = instance.getMemoryImprint(event); assertTrue(memoryImprint.wereAllBuildsSuccessful()); }
/** * Tests a scenario when one build is unstable and configured to be skipped. * Expected outcome is that * {@link BuildMemory.MemoryImprint#wereAllBuildsSuccessful()} will return false and * {@link BuildMemory.MemoryImprint#wereAnyBuildsUnstable()} will return true. * As before the skip vote feature was implemented. */ @Test public void testWereAllBuildsSuccessfulOneUnstableAndSkipped() { PatchsetCreated event = Setup.createPatchsetCreated(); BuildMemory instance = new BuildMemory(); SkipVote skipVote = new SkipVote(false, false, true, false); GerritTrigger trigger = mock(GerritTrigger.class); when(trigger.getSkipVote()).thenReturn(skipVote); when(project.getTrigger(eq(GerritTrigger.class))).thenReturn(trigger); triggers.put(descriptor, trigger); when(build.getResult()).thenReturn(Result.UNSTABLE); instance.started(event, build); instance.completed(event, build); MemoryImprint memoryImprint = instance.getMemoryImprint(event); assertFalse(memoryImprint.wereAllBuildsSuccessful()); assertTrue(memoryImprint.wereAnyBuildsUnstable()); }
protected void post2(BuildListener listener) throws Exception { if (getTarget() == null) { listener.error("No Promotion target, cannot save target or update status"); return; } if(getResult()== Result.SUCCESS) getStatus().onSuccessfulPromotion(Promotion.this); // persist the updated build record getTarget().save(); if (getResult() == Result.SUCCESS) { // we should evaluate any other pending promotions in case // they had a condition on this promotion PromotedBuildAction pba = getTarget().getAction(PromotedBuildAction.class); for (PromotionProcess pp : pba.getPendingPromotions()) { pp.considerPromotion2(getTarget()); } // tickle PromotionTriggers for (AbstractProject<?,?> p : JenkinsHelper.getInstance().getAllItems(AbstractProject.class)) { PromotionTrigger pt = p.getTrigger(PromotionTrigger.class); if (pt!=null) pt.consider(Promotion.this); } } }