io.sealights.agents.plugin.SealightsBuildListener Maven / Gradle / Ivy
package io.sealights.agents.plugin;
import org.gradle.BuildAdapter;
import org.gradle.BuildResult;
import org.gradle.api.Project;
import org.gradle.api.invocation.Gradle;
import io.sealights.onpremise.agents.java.agent.plugins.engine.lifecycle.BuildEndInfo;
/**
* Implements build lifecycle hooking
* @author ala schneider Jan 1, 2018
*
*/
public class SealightsBuildListener extends BuildAdapter {
private long startedAt;
private Project project;
public SealightsBuildListener(Project project) {
this.project = project;
startedAt = System.currentTimeMillis();
}
@Override
public void buildFinished(BuildResult buildResult) {
super.buildFinished(buildResult);
long buildDuration = System.currentTimeMillis() - startedAt;
BuildEndInfo buildInfo = new BuildEndInfo();
buildInfo.setBuildDurationMSec(buildDuration);
if (buildResult.getFailure()!= null) {
buildInfo.setSuccessful(false);
buildInfo.setFailureReason(buildResult.getFailure().getMessage());
}
else {
buildInfo.setSuccessful(true);
}
final SealightsPluginExtention extension = (SealightsPluginExtention) project.getExtensions().getByName(Constants.PLUGIN_EXTENSION_NAME);
new NotifyBuildEndTask(extension, buildInfo);
}
}