Refine search
/** * @since 2.1.0 */ @Override protected void customizeBuildVariables(final Map<String, String> vars) { AxisList axes = getParent().getParent().getAxes(); for (Map.Entry<String, String> e : getParent().getCombination().entrySet()) { Axis a = axes.find(e.getKey()); if (a != null) { a.addBuildVariable(e.getValue(), vars); } else { vars.put(e.getKey(), e.getValue()); } } }
@Override public Collection<? extends Action> getProjectActions(AbstractProject<?, ?> project) { if (this.reportTargets.isEmpty()) { return Collections.emptyList(); } else { ArrayList<Action> actions = new ArrayList<Action>(); for (HtmlPublisherTarget target : this.reportTargets) { actions.add(target.getProjectAction(project)); if (project instanceof MatrixProject && ((MatrixProject) project).getActiveConfigurations() != null){ for (MatrixConfiguration mc : ((MatrixProject) project).getActiveConfigurations()){ try { mc.onLoad(mc.getParent(), mc.getName()); } catch (IOException e){ //Could not reload the configuration. } } } } return actions; } }
@Override public void perform(Job _job) throws IOException, InterruptedException { // Let superclass handle clearing artifacts, if configured: super.perform(_job); MatrixConfiguration job = (MatrixConfiguration) _job; // copy it to the array because we'll be deleting builds as we go. for( MatrixRun r : job.getBuilds().toArray(new MatrixRun[0]) ) { if(job.getParent().getBuildByNumber(r.getNumber())==null) r.delete(); } if(!job.isActiveConfiguration() && job.getLastBuild()==null) job.delete(); } }
public void onDeleted(MatrixConfiguration item) throws IOException { if(activeConfigurations.contains(item)){ LOGGER.warning("Trying to delete active configuration " + item.getDisplayName() + " of job " + getDisplayName() + ". Active configurations should not be deleted."); } else{ configurations.remove(item.getCombination()); } }
public static boolean isfiltrated(final AbstractBuild build, String combinationFilter) { //Empty combination consider as filter all if (StringUtils.isEmpty(combinationFilter)) return true; if (build.getProject() instanceof MatrixConfiguration) { MatrixConfiguration matrixConf = ((MatrixConfiguration) build.getProject()); return !matrixConf.getCombination(). evalGroovyExpression(matrixConf.getParent().getAxes(), combinationFilter); } return false; }
for (Publisher pub : p.getPublishers().values()) { if (pub instanceof MatrixAggregatable) { MatrixAggregatable ma = (MatrixAggregatable) pub; for (JobProperty prop : p.getProperties().values()) { if (prop instanceof MatrixAggregatable) { MatrixAggregatable ma = (MatrixAggregatable) prop; AxisList axes = p.getAxes(); String touchStoneCombinationFilter = p.getTouchStoneCombinationFilter(); if (touchStoneFilter != null && c.getCombination() .evalGroovyExpression(axes, touchStoneCombinationFilter)) { touchStoneConfigurations.add(c); } else { for (MatrixConfiguration c : activeConfigurations) { if (q.cancel(c)) { logger.println(Messages.MatrixBuild_Cancelled(c.getDisplayName())); MatrixRun b = c.getBuildByNumber(n); if (b != null) { Executor exe = b.getExecutor(); if (exe != null) { logger.println(Messages.MatrixBuild_Interrupting(b.getDisplayName())); exe.interrupt();
@Override public String getDisplayName() { StaplerRequest req = Stapler.getCurrentRequest(); if(req!=null) { List<Ancestor> ancs = req.getAncestors(); for( int i=1; i<ancs.size(); i++) { if(ancs.get(i).getObject()==this) { if(ancs.get(i-1).getObject() instanceof MatrixBuild) { return getParent().getCombination().toCompactString(getParent().getParent().getAxes()); } } } } return super.getDisplayName(); }
File[] oldDirs = getConfigurationsDir().listFiles(new FileFilter() { public boolean accept(File child) { return child.isDirectory() && !child.getName().startsWith("axis-"); Combination c = Combination.fromString(dir.getName()); dir.renameTo(getRootDirFor(c)); } catch (IllegalArgumentException e) { loadConfigurations(getConfigurationsDir(), configurations, Collections.<String, String>emptyMap()); this.configurations = configurations; for (Combination c : axes.list()) { String combinationFilter = getCombinationFilter(); if (c.evalScriptExpression(axes, combinationFilter)) { LOGGER.fine("Adding configuration: " + c); MatrixConfiguration config = configurations.get(c); if (config == null) { config = new MatrixConfiguration(this, c); config.save(); configurations.put(config.getCombination(), config);
/** * Gets the {@link MatrixBuild} that has the same build number. * * @return * null if no such build exists, which happens when the module build * is manually triggered. */ public MatrixBuild getParentBuild() { return getParent().getParent().getBuildByNumber(getNumber()); }
XmlFile config = Items.getConfigFile(v); if(config.exists()) { Combination comb = new Combination(c); if(item==null) { item = (MatrixConfiguration) config.read(); item.setCombination(comb); item.onLoad(this, v.getName()); result.put(item.getCombination(), item); loadConfigurations(v,result,c);
File[] oldDirs = getConfigurationsDir().listFiles(new FileFilter() { public boolean accept(File child) { return child.isDirectory() && !child.getName().startsWith("axis-"); Combination c = Combination.fromString(dir.getName()); final File target = getRootDirFor(c); if (!dir.renameTo(target)) { LOGGER.log(Level.WARNING, "Cannot rename directory {0} to {1}", new Object[]{dir, target}); loadConfigurations(getConfigurationsDir(),configurations,Collections.<String,String>emptyMap()); this.configurations = configurations; public Combination apply(@Nullable List<String> strings) { assert strings != null; return new Combination(axes, strings); if(isDynamicFilter || c.evalGroovyExpression(axes,getCombinationFilter())) { LOGGER.fine("Adding configuration: " + c); MatrixConfiguration config = configurations.get(c); if(config==null) { config = new MatrixConfiguration(this,c); config.onCreatedFromScratch(); config.save(); configurations.put(config.getCombination(), config);
@Override public String getDisplayName() { return combination.toCompactString(getParent().getAxes()); }
MatrixRun b = c.getBuildByNumber(getNumber()); if (b != null && !b.isBuilding()) { buildResult = b.getResult(); Queue.Item qi = c.getQueueItem(); if (b == null && qi == null) { appearsCancelledCount++; listener.getLogger().println(Messages.MatrixBuild_AppearsCancelled(c.getDisplayName())); buildResult = Result.ABORTED; listener.getLogger().println(c.getDisplayName() + " is still in the queue: " + why); whyInQueue = why;
/** * Returns true if this configuration is a configuration * currently in use today (as opposed to the ones that are * there only to keep the past record.) * * @see MatrixProject#getActiveConfigurations() */ public boolean isActiveConfiguration() { return getParent().getActiveConfigurations().contains(this); }
public File getRootDirFor(MatrixConfiguration child) { return getRootDirFor(child.getCombination()); }
@Override protected MatrixRun newBuild() throws IOException { // for every MatrixRun there should be a parent MatrixBuild MatrixBuild lb = getParent().getLastBuild(); MatrixRun lastBuild = new MatrixRun(this, lb.getTimestamp()); lastBuild.number = lb.getNumber(); builds.put(lastBuild); return lastBuild; }
/** * Generates the contents of {@link #runIds} so it contains some type of identifiable to later retrieve the runs * when this is read from disk. * * @param matrixRuns the list of runs to get the ids from. */ private void makeIdList(List<MatrixRun> matrixRuns) { logger.finer("making runIds"); this.runIds = new LinkedList<String>(); for (MatrixRun run : matrixRuns) { MatrixConfiguration configuration = run.getProject(); runIds.add(configuration.getCombination().toString()); } logger.log(Level.FINER, "runIds size: {0}", runIds.size()); }
@Override public boolean doBuildConfiguration(MatrixBuild b, MatrixConfiguration c) { MatrixSubsetAction a = b.getAction(MatrixSubsetAction.class); if (a==null) return true; // run the filter and restrict the subset to run return c.getCombination().evalGroovyExpression(b.getParent().getAxes(),a.getFilter()); } }
public boolean doBuildConfiguration(MatrixBuild b, MatrixConfiguration c) { MatrixSubsetAction a = b.getAction(MatrixSubsetAction.class); if (a==null) return true; // run the filter and restrict the subset to run return c.getCombination().evalScriptExpression(b.getParent().getAxes(), a.getFilter()); }