AbstractBuild<?,?> upstreamBuild = upstreamProject.getBuild(upstreamBuildNumber); if (upstreamBuild != null && upstreamBuild.hasPermission(Item.READ)) {
@Override public void triggerManual(AbstractProject<?, ?> project, AbstractProject<?, ?> upstream, String buildId, ItemGroup<? extends TopLevelItem> itemGroup) throws TriggerException { StandardBuildCard buildCard = new StandardBuildCard(); if (upstream != null && upstream.getBuild(buildId) != null) { try { buildCard.triggerManualBuild(itemGroup, Integer.parseInt(buildId), project.getRelativeNameFrom(itemGroup), upstream.getRelativeNameFrom(itemGroup)); } catch (Exception e) { throw new TriggerException("Could not trigger", e); } } else { throw new TriggerException("Could not find build: " + buildId + " for project: " + upstream); } } }
@JavaScriptMethod public String[] renderTemplate(String templateFile, String buildId) { String[] result = new String[2]; result[0] = StringUtils.EMPTY; result[1] = StringUtils.EMPTY; try { AbstractBuild<?,?> build = project.getBuild(buildId); ByteArrayOutputStream stream = new ByteArrayOutputStream(); StreamTaskListener listener = new StreamTaskListener(stream); if(templateFile.endsWith(".jelly")) { JellyScriptContent jellyContent = new JellyScriptContent(); jellyContent.template = templateFile; result[0] = jellyContent.evaluate(build, listener, "JELLY_SCRIPT"); } else { ScriptContent scriptContent = new ScriptContent(); scriptContent.template = templateFile; result[0] = scriptContent.evaluate(build, listener, "SCRIPT"); } result[1] = stream.toString(ExtendedEmailPublisher.descriptor().getCharset()); } catch (Exception ex) { result[0] = renderError(ex); } return result; }
/** * Sets up the {@link #project} and {@link #build} mocks. * * This is called from {@link #fullSetup()} but can also * be called several times during a test to create more instances. */ void setup() { String name = "MockProject" + (nameCount++); String buildId = "b" + nameCount; project = mock(AbstractProject.class); doReturn(name).when(project).getFullName(); build = mock(AbstractBuild.class); doReturn(buildId).when(build).getId(); when(build.getProject()).thenReturn(project); when(build.getParent()).thenReturn(project); doReturn(build).when(project).getBuild(eq(buildId)); when(jenkins.getItemByFullName(eq(name), same(AbstractProject.class))).thenReturn(project); when(jenkins.getItemByFullName(eq(name), same(Job.class))).thenReturn(project); }
/** * Sets up the {@link #project} and {@link #build} mocks. * * This is called from {@link #setupFull()} but can also * be called several times during a test to create more instances. */ public void setup() { String name = "MockProject" + (nameCount++); String buildId = "b" + nameCount; project = mock(AbstractProject.class); doReturn(name).when(project).getFullName(); build = mock(AbstractBuild.class); doReturn(buildId).when(build).getId(); when(build.getProject()).thenReturn(project); when(build.getParent()).thenReturn(project); doReturn(build).when(project).getBuild(eq(buildId)); when(jenkins.getItemByFullName(eq(name), same(AbstractProject.class))).thenReturn(project); when(jenkins.getItemByFullName(eq(name), same(Job.class))).thenReturn(project); triggers = new HashMap<TriggerDescriptor, Trigger<?>>(); when(project.getTriggers()).thenReturn(triggers); }
/** * Returns a mocked AbstractBuild. The build will contain a mocked AbstractProject with the provided name and have * the provided buildNumber. * * @param projectFullName the project's name * @param buildNumber the buildNumber. * @return a mock. * @throws Exception if so. */ private AbstractBuild mockBuild(String projectFullName, int buildNumber) throws Exception { AbstractProject project = mockProject(projectFullName); String buildId = projectFullName + "#" + buildNumber; AbstractBuild build = mock(AbstractBuild.class); doReturn(buildId).when(build).getId(); when(build.getProject()).thenReturn(project); when(build.getParent()).thenReturn(project); doReturn(build).when(project).getBuild(eq(buildId)); when(build.getNumber()).thenReturn(buildNumber); EnvVars envVars = Setup.createEnvVars(); doReturn(envVars).when(build).getEnvironment(); doReturn(envVars).when(build).getEnvironment(any(TaskListener.class)); Map<String, String> buildVarsMap = new HashMap<String, String>(); buildVarsMap.put("BUILD_NUM", Integer.toString(buildNumber)); when(build.getBuildVariables()).thenReturn(buildVarsMap); return build; }
when(build.getProject()).thenReturn(project); when(build.getParent()).thenReturn(project); doReturn(build).when(project).getBuild(anyString());
project = mock(AbstractProject.class); doReturn("MockProject2").when(project).getFullName(); doReturn(build).when(project).getBuild(anyString()); when(build.getProject()).thenReturn(project); when(build.getParent()).thenReturn(project);