Skip to content

Commit

Permalink
Log gradle timings per task (debugging build server times)
Browse files Browse the repository at this point in the history
  • Loading branch information
mezz committed Oct 12, 2016
1 parent 5418457 commit e48af13
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions build.gradle
Expand Up @@ -147,3 +147,45 @@ task("uploadJars", dependsOn: "build") {
}
}
}

// Log timings per task.
class TimingsListener implements TaskExecutionListener, BuildListener {
private Clock clock
private timings = []

@Override
void beforeExecute(Task task) {
clock = new org.gradle.util.Clock()
}

@Override
void afterExecute(Task task, TaskState taskState) {
def ms = clock.timeInMs
timings.add([ms, task.path])
task.project.logger.warn "${task.path} took ${ms}ms"
}

@Override
void buildFinished(BuildResult result) {
println "Task timings:"
for (timing in timings) {
if (timing[0] >= 50) {
printf "%7sms %s\n", timing
}
}
}

@Override
void buildStarted(Gradle gradle) {}

@Override
void projectsEvaluated(Gradle gradle) {}

@Override
void projectsLoaded(Gradle gradle) {}

@Override
void settingsEvaluated(Settings settings) {}
}

gradle.addListener new TimingsListener()

0 comments on commit e48af13

Please sign in to comment.