/** * Used to retrieve the parameters from the upstream project build trigger relative to the given downstream project * @param project the downstream project * @param upstreamBuild the upstream project build * @return the trigger config relative to the given downstream project */ private List<AbstractBuildParameters> retrieveUpstreamProjectTriggerConfig(final AbstractProject<?, ?> project, final AbstractBuild<?, ?> upstreamBuild) { final DescribableList<Publisher, Descriptor<Publisher>> upstreamProjectPublishersList = upstreamBuild.getProject().getPublishersList(); List<AbstractBuildParameters> configs = null; final BuildPipelineTrigger manualTrigger = upstreamProjectPublishersList.get(BuildPipelineTrigger.class); if (manualTrigger != null) { final Set<String> downstreamProjectsNames = Sets.newHashSet(Splitter.on(",").trimResults().split(manualTrigger.getDownstreamProjectNames())); if (downstreamProjectsNames.contains(project.getFullName())) { configs = manualTrigger.getConfigs(); } } final BuildTrigger autoTrigger = upstreamProjectPublishersList.get(BuildTrigger.class); if (autoTrigger != null) { for (BuildTriggerConfig config : autoTrigger.getConfigs()) { final Set<String> downstreamProjectsNames = Sets.newHashSet(Splitter.on(",").trimResults().split(config.getProjects())); if (downstreamProjectsNames.contains(project.getFullName())) { configs = config.getConfigs(); } } } return configs; }
public void buildDependencyGraph(AbstractProject owner, DependencyGraph graph) { // Can only add dependencies in Hudson 1.341 or higher if (!canDeclare(owner)) return; for (BuildTriggerConfig config : configs) for (AbstractProject project : config.getProjectList(owner.getParent(),null)) ParameterizedDependency.add(owner, project, config, graph); } }
hasEnvVariables = hasEnvVariables || hasEnvVariables(config, build.getEnvironment(listener)); if (canDeclare(build.getProject()) && !hasEnvVariables) { AbstractBuild abstractBuild = downstreamMap.get(projects[i]); if (null != abstractBuild) { listener.getLogger().println(makeLogEntry(projects[i].trim())); buildMap.put(abstractBuild.getProject().getFullName(), abstractBuild.getNumber());
for (ListIterator<BuildTriggerConfig> btc = bt.getConfigs().listIterator(); btc.hasNext();) { BuildTriggerConfig c = btc.next(); if (c.onDeleted(oldName)) { if (bt!=null && bt.getConfigs().isEmpty()){ p.getPublishersList().remove(bt);
@Override @SuppressWarnings("deprecation") public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { if (canDeclare(build.getProject())) { // job will get triggered by dependency graph, so we have to capture buildEnvironment NOW before // hudson.model.AbstractBuild.AbstractBuildExecution#cleanUp is called and reset EnvVars env = build.getEnvironment(listener); build.addAction(new CapturedEnvironmentAction(env)); } else { for (BuildTriggerConfig config : configs) { config.perform(build, launcher, listener); } } return true; }
for (ListIterator<BuildTriggerConfig> btc = bt.getConfigs().listIterator(); btc.hasNext();) { BuildTriggerConfig c = btc.next(); if (c.onDeleted(p.getParent(), oldName)) { if (bt!=null && bt.getConfigs().isEmpty()){ p.getPublishersList().remove(bt);
@Override public void buildDependencyGraph(AbstractProject owner, DependencyGraph graph) { if (!canDeclare(owner)) return; for (BuildTriggerConfig config : configs) { List<AbstractProject> projectList = config.getProjectList(owner.getParent(), null); for (AbstractProject project : projectList) { if (config.isTriggerFromChildProjects() && owner instanceof ItemGroup) { ItemGroup<Item> parent = (ItemGroup) owner; for (Item item : parent.getItems()) { if(item instanceof AbstractProject){ AbstractProject child = (AbstractProject) item; ParameterizedDependency.add(child, project, config, graph); } } } else{ ParameterizedDependency.add(owner, project, config, graph); } } } }
@Override public void onRenamed(Item item, String oldName, String newName) { for (Project<?,?> p : Hudson.getInstance().getProjects()) { boolean changed = false; //iterate over post build triggers BuildTrigger bt = p.getPublishersList().get(BuildTrigger.class); if (bt != null) { for (BuildTriggerConfig c : bt.getConfigs()){ changed |= c.onJobRenamed(oldName, newName); } } //iterate over build step triggers TriggerBuilder tb = p.getBuildersList().get(TriggerBuilder.class); if (tb != null) { for (BuildTriggerConfig co : tb.getConfigs()){ changed |= co.onJobRenamed(oldName, newName); } } //if something changed, save the project if (changed){ try { p.save(); } catch (IOException e) { Logger.getLogger(RenameListener.class.getName()).log(Level.WARNING, "Failed to persist project setting during rename from "+oldName+" to "+newName, e); } } } }
if (buildStep instanceof BuildTrigger) { BuildTrigger buildTrigger = (BuildTrigger) buildStep; List<BuildTriggerConfig> configs = buildTrigger.getConfigs(); for (BuildTriggerConfig config : configs) { result.addAll(config.getProjectList(project.getParent(), null));
for (BuildTriggerConfig c : bt.getConfigs()){ changed |= c.onJobRenamed(p.getParent(), fullOldName, fullNewName);