blob: b09ef99871870486aa0fdef81e942bf40e904a92 [file] [log] [blame]
import groovy.json.JsonSlurper
import org.gradle.api.*
/**
* Utility for printing benchmark results.
* Results can be obtained with JMH flags
* -rf json -rff serialization-benchmark-results.json
*/
class PrintBenchmarksTask extends DefaultTask {
private String fileName = "serialization-benchmark-results.json"
@TaskAction
def printBenchmarkJsonAsTeamcityStats() {
File jsonFile = project.file(fileName)
if (!jsonFile.exists()) throw new TaskExecutionException(this, new FileNotFoundException("File $fileName not found"))
def parsedJson = new JsonSlurper().parseText(jsonFile.text)
parsedJson.each { v ->
def name = (v.benchmark - "kotlinx.benchmarks.")
def score = v.primaryMetric.score
println("##teamcity[buildStatisticValue key='" + name + "' value='" + score + "']")
}
}
}
rootProject.tasks.register("printBenchmarksJsonAsTeamcityStats", PrintBenchmarksTask)