
net.rdrei.android.buildtimetracker.TimingRecorder.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-plugin Show documentation
Show all versions of gradle-plugin Show documentation
Gradle plugin which tracks your build times.
The newest version!
package net.rdrei.android.buildtimetracker
import org.gradle.BuildResult
import org.gradle.api.Task
import org.gradle.api.execution.TaskExecutionListener
import org.gradle.api.invocation.Gradle
import org.gradle.api.tasks.TaskState
import org.gradle.util.Clock
class Timing {
long ms
String path
boolean success
boolean didWork
boolean skipped
Timing(long ms, String path, boolean success, boolean didWork, boolean skipped) {
this.ms = ms
this.path = path
this.success = success
this.didWork = didWork
this.skipped = skipped
}
}
class TimingRecorder extends BuildAndTaskExecutionListenerAdapter implements TaskExecutionListener {
private Clock clock
private List timings = []
private BuildTimeTrackerPlugin plugin
TimingRecorder(BuildTimeTrackerPlugin plugin) {
this.plugin = plugin
}
@Override
void beforeExecute(Task task) {
clock = new Clock()
}
@Override
void afterExecute(Task task, TaskState taskState) {
timings << new Timing(
clock.getTimeInMs(),
task.getPath(),
taskState.getFailure() == null,
taskState.getDidWork(),
taskState.getSkipped()
)
}
@Override
void buildFinished(BuildResult result) {
plugin.reporters.each { it.run timings; it.onBuildResult result }
}
List getTasks() {
timings*.path
}
Timing getTiming(String path) {
timings.find { it.path == path }
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy