Refine search
/** * 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); }
@Override public DescribableList<Builder, Descriptor<Builder>> getBuildersList() { return getParent().getBuildersList(); }
@Override public DescribableList<Publisher, Descriptor<Publisher>> getPublishersList() { return getParent().getPublishersList(); }
@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(); } }
/** * 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()); }
@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()); }
/** * Returns all {@link MatrixRun}s for this {@link MatrixBuild}. */ public List<MatrixRun> getRuns() { List<MatrixRun> r = new ArrayList<MatrixRun>(); for (MatrixConfiguration c : getParent().getItems()) { MatrixRun b = c.getBuildByNumber(getNumber()); if (b != null) { r.add(b); } } return r; }
/** * Like {@link #getRun(Combination)}, but do not approximate the result by earlier execution * of the given combination (which is done for partial rebuild of the matrix.) */ public MatrixRun getExactRun(Combination c) { MatrixConfiguration config = getParent().getItem(c); if(config==null) return null; return config.getBuildByNumber(getNumber()); }
/** * True if this build didn't do a full build and it is depending on the result of the previous build. */ public boolean isPartial() { for(MatrixConfiguration c : getParent().getActiveConfigurations()) { MatrixRun b = c.getNearestOldBuild(getNumber()); if (b != null && b.getNumber()!=getNumber()) return true; } return false; }
/** * @since 2.1.0 */ @Override public DescribableList<BuildWrapper, Descriptor<BuildWrapper>> getBuildWrappersList() { return getParent().getBuildWrappersList(); }
matrixProject.getBuildersList().add(new TestBuilder() { @Override public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { Future<MatrixBuild> matrixBuildFuture = matrixProject.scheduleBuild2(0); firstBuild.await(5, TimeUnit.SECONDS); List<MatrixRun> runs = r.getRuns(); Set<String> builtIds = new HashSet<String>(); for (MatrixRun run : runs) { MercurialTagAction builtRevision = run.getAction(MercurialTagAction.class); String buildId = builtRevision.getId(); builtIds.add(buildId);
public String getTooltip() { MatrixRun r = getRun(); if (r != null) { return r.getIconColor().getDescription(); } Queue.Item item = Hudson.getInstance().getQueue().getItem(getParent().getItem(combination)); if (item != null) { return item.getWhy(); } return null; // fall back }
@Override public List<Builder> getBuilders() { return getParent().getBuilders(); }
@CheckForNull private EnvInjectPasswordWrapper getEnvInjectPasswordWrapper(@Nonnull Run<?, ?> build) throws EnvInjectException { DescribableList<BuildWrapper, Descriptor<BuildWrapper>> wrappersProject; if (build instanceof MatrixRun) { MatrixProject project = ((MatrixRun) build).getParentBuild().getProject(); wrappersProject = project.getBuildWrappersList(); } else { final Job<?, ?> job = build.getParent(); if (job instanceof BuildableItemWithBuildWrappers) { BuildableItemWithBuildWrappers project = (BuildableItemWithBuildWrappers) job; wrappersProject = project.getBuildWrappersList(); } else { throw new EnvInjectException(String.format("Job type %s is not supported", job)); } } for (BuildWrapper buildWrapper : wrappersProject) { if (EnvInjectPasswordWrapper.class.equals(buildWrapper.getClass())) { return (EnvInjectPasswordWrapper) buildWrapper; } } return null; }
@Override public AbstractBuild<?,?> resolveChild(Child child) { MatrixBuild b = (MatrixBuild)owner; return b.getProject().getItem(Combination.fromString(child.name)).getBuildByNumber(child.build); }
@Override public MatrixAggregator createAggregator(final MatrixBuild build, final Launcher launcher, final BuildListener listener) { IssuesRecorder recorder = build.getParent().getPublishersList().get(IssuesRecorder.class); if (recorder == null) { return null; } return new IssuesAggregator(build, launcher, listener, recorder); } }
public Publisher getPublisher(Descriptor<Publisher> descriptor) { for (Publisher p : getPublishersList()) { if (p.getDescriptor() == descriptor) { return p; } } return null; }