private boolean build(BuildListener listener, Collection<hudson.tasks.Builder> steps) throws IOException, InterruptedException { for( BuildStep bs : steps ){ if(!perform(bs,listener)) { LOGGER.fine(MessageFormat.format("{1} failed", bs)); return false; } } return true; }
parsePoms(listener, logger, envVars, mvn, mavenVersion, mavenBuildInformation); if(!preBuild(listener,project.getPrebuilders()) || !preBuild(listener,project.getPostbuilders()) || !preBuild(listener,project.getPublishers())){ setResult(r = FAILURE); return r; if(!build(listener,project.getPrebuilders().toList())){ setResult(r = FAILURE); return r; parsePoms(listener, logger, envVars, mvn, mavenVersion, mavenBuildInformation); // #5428 : do pre-build *before* parsing pom SplittableBuildListener slistener = new SplittableBuildListener(listener); proxies = new HashMap<>(); changedModules.addAll(getUnbuiltModulesSinceLastSuccessfulBuild()); final List<MavenArgumentInterceptorAction> argInterceptors = this.getBuild().getActions(MavenArgumentInterceptorAction.class); final String goalsAndOptions = mavenArgInterceptor.getGoalsAndOptions((MavenModuleSetBuild)this.getBuild()); if(StringUtils.isNotBlank(goalsAndOptions)){ goals = goalsAndOptions; final ArgumentListBuilder newMargs = mavenArgInterceptor.intercept(margs, (MavenModuleSetBuild)this.getBuild()); if (newMargs != null) { margs = newMargs; if(!build(listener,project.getPostbuilders().toList())){
protected void post2(BuildListener listener) throws Exception { // asynchronous executions from the build might have left some unsaved state, // so just to be safe, save them all. for (MavenBuild b : getModuleLastBuilds().values()) b.save(); // at this point the result is all set, so ignore the return value if (!performAllBuildSteps(listener, project.getPublishers(), true)) setResult(FAILURE); if (!performAllBuildSteps(listener, project.getProperties(), true)) setResult(FAILURE); // aggregate all module fingerprints to us, // so that dependencies between module builds can be understood as // dependencies between module set builds. // TODO: we really want to implement this as a publisher, // but we don't want to ask for a user configuration, nor should it // show up in the persisted record. MavenFingerprinter.aggregate(MavenModuleSetBuild.this); }
@Override public void cleanUp(BuildListener listener) throws Exception { MavenMailer mailer = project.getReporters().get(MavenMailer.class); if (mailer != null) { final String evaluatedRecipients = new VariableExpander(getBuild(), listener).expand(mailer.getAllRecipients()); new MailSender(evaluatedRecipients, mailer.dontNotifyEveryUnstableBuild, mailer.sendToIndividuals).execute(MavenModuleSetBuild.this, listener); } // too late to set the build result at this point. so ignore failures. performAllBuildSteps(listener, project.getPublishers(), false); performAllBuildSteps(listener, project.getProperties(), false); super.cleanUp(listener); }
@SuppressWarnings("unchecked") public void run() { execute(new MavenModuleSetBuildExecution()); getProject().updateTransientActions(); }