@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); } } }
if (item == null) { return FormValidation.error(Messages.BuildTrigger_NoSuchProject(projectName, AbstractProject.findNearest(projectName, project.getParent()).getRelativeNameFrom(project)));
/** * Checks the job name. * @param project Current project * @param value Value to be validated * @return Validation result */ public FormValidation doCheckJobName(@AncestorInPath Item project, @QueryParameter String value ) { if (!project.hasPermission(Item.CONFIGURE) && project.hasPermission(Item.EXTENDED_READ)) { return FormValidation.ok(); } project.checkPermission(Item.CONFIGURE); if (StringUtils.isNotBlank(value)) { AbstractProject p = JenkinsHelper.getInstance().getItem(value,project,AbstractProject.class); if(p==null) { AbstractProject nearest = AbstractProject.findNearest(value, project.getParent()); return FormValidation.error( nearest != null ? hudson.tasks.Messages.BuildTrigger_NoSuchProject(value, nearest.getRelativeNameFrom(project)) : Messages.Shared_noSuchProject(value)); } } return FormValidation.ok(); }
List<List<Stage>> allPaths = findAllRunnablePaths(findStageForJob(firstProject.getRelativeNameFrom( Jenkins.getInstance()), stages), graph); allPaths.sort((stages1, stages2) -> stages2.size() - stages1.size());
public static Task getPrototypeTask(AbstractProject project, boolean initial) { PipelineProperty property = (PipelineProperty) project.getProperty(PipelineProperty.class); String taskName = property != null && !isNullOrEmpty(property.getTaskName()) ? property.getTaskName() : project.getDisplayName(); if (property == null && project.getParent() instanceof AbstractProject) { property = (PipelineProperty) ((AbstractProject) project.getParent()).getProperty(PipelineProperty.class); taskName = property != null && !isNullOrEmpty(property.getTaskName()) ? property.getTaskName() + " " + project.getName() : project.getDisplayName(); } String descriptionTemplate = property != null && !isNullOrEmpty(property.getDescriptionTemplate()) ? property.getDescriptionTemplate() : ""; Status status = project.isDisabled() ? disabled() : idle(); List<AbstractProject> downStreams = ProjectUtil.getDownstreamProjects(project); List<String> downStreamTasks = new ArrayList<>(); for (AbstractProject downstreamProject : downStreams) { downStreamTasks.add(downstreamProject.getRelativeNameFrom(Jenkins.getInstance())); } return new Task(project, project.getRelativeNameFrom(Jenkins.getInstance()), taskName, status, project.getUrl(), ManualStep.resolveManualStep(project), downStreamTasks, initial, descriptionTemplate); }
&& !ProjectUtil.isQueued(project, firstBuild)) { Result result = upstreamBuild.getResult(); return new ManualStep(upstream.getRelativeNameFrom(JenkinsUtil.getInstance()), String.valueOf(upstreamBuild.getNumber()), result != null && !result.isWorseThan(Result.UNSTABLE), project.hasPermission(Item.BUILD), null); if (upstreamBuild != null && !build.isBuilding() && !ProjectUtil.isQueued(project, firstBuild) && result != null && result.isWorseThan(Result.UNSTABLE)) { return new ManualStep(upstream.getRelativeNameFrom(JenkinsUtil.getInstance()), String.valueOf(upstreamBuild.getNumber()), true, project.hasPermission(Item.BUILD), null); return new ManualStep(upstream.getRelativeNameFrom(JenkinsUtil.getInstance()), null, false, project.hasPermission(Item.BUILD), null);
/** * Display Job List Item in the Edit View Page * * @param context What to resolve relative job names against? * @return ListBoxModel */ public ListBoxModel doFillFirstJobItems(@AncestorInPath ItemGroup<?> context) { final hudson.util.ListBoxModel options = new hudson.util.ListBoxModel(); for (final AbstractProject<?, ?> p : Jenkins.getInstance().getAllItems(AbstractProject.class)) { options.add(/* TODO 1.515: p.getRelativeDisplayNameFrom(context) */p.getFullDisplayName(), p.getRelativeNameFrom(context)); } return options; } }
public static boolean isQueued(AbstractProject project, AbstractBuild firstBuild) { if (!project.isInQueue()) { return false; } else if (firstBuild == null) { return true; } List<Cause.UpstreamCause> causes = Util.filter(project.getQueueItem().getCauses(), Cause.UpstreamCause.class); @SuppressWarnings("unchecked") List<AbstractProject<?,?>> upstreamProjects = project.getUpstreamProjects(); for (AbstractProject<?, ?> upstreamProject : upstreamProjects) { AbstractBuild upstreamBuild = BuildUtil.match(upstreamProject.getBuilds(), firstBuild); if (upstreamBuild != null) { for (Cause.UpstreamCause upstreamCause : causes) { if (upstreamBuild.getNumber() == upstreamCause.getUpstreamBuild() && upstreamProject.getRelativeNameFrom(JenkinsUtil.getInstance()).equals( upstreamCause.getUpstreamProject())) { return true; } } } } return false; }