/** * removes the project references within all {@link TriggerBuilder}s which are wrapped by a conditional buildsteps * @param p the project the check * @param oldName the old project name * @return whether a change has been made */ private boolean deleteInConditionalBuildStep(Project<?,?> p, String oldName) { boolean changed = false; final List<TriggerBuilder> containedBuilders = ConditionalBuildStepHelper.getContainedBuilders(p, TriggerBuilder.class); for (TriggerBuilder triggerBuilder : containedBuilders) { for (ListIterator<BlockableBuildTriggerConfig> bbtc = triggerBuilder.getConfigs().listIterator(); bbtc.hasNext();) { BuildTriggerConfig c = bbtc.next(); if (c.onDeleted(p.getParent(), oldName)) { changed = true; if (c.getProjects().length() == 0){ bbtc.remove(); } } } } return changed; }
); return new TriggerBuilder(config);
@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) { graph.addDependency(new TriggerBuilderDependency(owner, project, config)); } } }
listener.getLogger().println("Triggering projects: " + getProjectListAsString(projectList)); for(Job p : projectList) { BuildInfoExporterAction.addBuildInfoExporterAction(build, p.getFullName());
@Override public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { FilePath workspace = build.getWorkspace(); if (workspace == null) { throw new AbortException("no workspace"); } FilePath dir = workspace.child("test-splits"); dir.deleteRecursive(); List<InclusionExclusionPattern> splits = findTestSplits(parallelism, build, listener, includesPatternFile != null, null, build.getWorkspace(), estimateTestsFromFiles); for (int i = 0; i < splits.size(); i++) { InclusionExclusionPattern pattern = splits.get(i); try (OutputStream os = dir.child("split." + i + "." + (pattern.isIncludes() ? "include" : "exclude") + ".txt").write(); OutputStreamWriter osw = new OutputStreamWriter(os, Charsets.UTF_8); PrintWriter pw = new PrintWriter(osw)) { for (String filePattern : pattern.getList()) { pw.println(filePattern); } } } createTriggerBuilder().perform(build, launcher, listener); if (isArchiveTestResults()) { tally(build, launcher, listener); } return true; }
listener.getLogger().println("Triggering projects: " + getProjectListAsString(projectList)); continue;
/** * renames the project references within all {@link TriggerBuilder}s which are wrapped by a conditional buildsteps * @param p the project the check * @param oldName the old project name * @param newName the new project name * @return whether a change has been made */ private boolean renameInConditionalBuildStep(Project<?,?> p, String oldName, String newName) { boolean changed = false; final List<TriggerBuilder> containedBuilders = ConditionalBuildStepHelper.getContainedBuilders(p, TriggerBuilder.class); for (TriggerBuilder triggerBuilder : containedBuilders) { for (BuildTriggerConfig co : triggerBuilder.getConfigs()){ changed |= co.onJobRenamed(p.getParent(), oldName, newName); } } return changed; }
for (ListIterator<BlockableBuildTriggerConfig> bbtc = tb.getConfigs().listIterator(); bbtc.hasNext();) { BuildTriggerConfig c = bbtc.next(); if (c.onDeleted(oldName)) { p.getPublishersList().remove(bt); if (tb!=null && tb.getConfigs().isEmpty()){ p.getBuildersList().remove(tb);
for (ListIterator<BlockableBuildTriggerConfig> bbtc = tb.getConfigs().listIterator(); bbtc.hasNext();) { BuildTriggerConfig c = bbtc.next(); if (c.onDeleted(p.getParent(), oldName)) { p.getPublishersList().remove(bt); if (tb!=null && tb.getConfigs().isEmpty()){ p.getBuildersList().remove(tb);
@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); } } } }
List<BlockableBuildTriggerConfig> configs = triggerBuilder.getConfigs(); for (BlockableBuildTriggerConfig config : configs) { result.addAll(config.getProjectList(project.getParent(), null));
for (BuildTriggerConfig co : tb.getConfigs()){ changed |= co.onJobRenamed(p.getParent(), fullOldName, fullNewName);