
net.rdrei.android.buildtimetracker.reporters.CSVReporter.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.reporters
import au.com.bytecode.opencsv.CSVWriter
import net.rdrei.android.buildtimetracker.Timing
import org.gradle.internal.TrueTimeProvider
import org.gradle.api.logging.Logger
import java.text.DateFormat
import java.text.SimpleDateFormat
class CSVReporter extends AbstractBuildTimeTrackerReporter {
CSVReporter(Map options, Logger logger) {
super(options, logger)
}
@Override
def run(List timings) {
long timestamp = new TrueTimeProvider().getCurrentTime()
String output = getOption("output", "")
boolean append = getOption("append", "false").toBoolean()
TimeZone tz = TimeZone.getTimeZone("UTC")
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss,SSS'Z'")
df.setTimeZone(tz)
File file = new File(output)
file.getParentFile()?.mkdirs()
CSVWriter writer = new CSVWriter(new BufferedWriter(new FileWriter(file, append)))
if (getOption("header", "true").toBoolean()) {
String[] headers = ["timestamp", "order", "task", "success", "did_work", "skipped", "ms", "date",
"cpu", "memory", "os"]
writer.writeNext(headers)
}
def info = new SysInfo()
def osId = info.getOSIdentifier()
def cpuId = info.getCPUIdentifier()
def maxMem = info.getMaxMemory()
timings.eachWithIndex { timing, idx ->
String[] line = [
timestamp.toString(),
idx.toString(),
timing.path,
timing.success.toString(),
timing.didWork.toString(),
timing.skipped.toString(),
timing.ms.toString(),
df.format(new Date(timestamp)),
cpuId,
maxMem,
osId
].toArray()
writer.writeNext(line)
}
writer.close()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy