KT-48264 Create dir before kotlin-build-report publish

This commit is contained in:
nataliya.valtman
2021-09-02 11:41:27 +03:00
parent 8117cd4c24
commit 862f8cdad8
2 changed files with 15 additions and 13 deletions
@@ -25,6 +25,12 @@ internal class PlainTextBuildReportWriter(
override fun process(build: BuildExecutionData) {
try {
outputFile.parentFile.mkdirs()
if (!(outputFile.parentFile.exists() && outputFile.parentFile.isDirectory)) {
log.error("Kotlin build report cannot be created: '$outputFile.parentFile' is a file or do not have permissions to create")
return
}
outputFile.bufferedWriter().use { writer ->
p = Printer(writer)
printBuildReport(build)
@@ -66,18 +66,14 @@ private fun configurePlainTextReportWriter(
reportingSettings: ReportingSettings
): BuildExecutionDataProcessor? {
val log = gradle.rootProject.logger
val reportDir = reportingSettings.buildReportDir!!.apply { mkdirs() }
if (reportDir.isFile) {
log.error("Kotlin build report cannot be created: '$reportDir' is a file")
return null
}
reportDir.mkdirs()
val ts = SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(Calendar.getInstance().time)
val reportFile = reportDir.resolve("${gradle.rootProject.name}-build-$ts.txt")
return reportingSettings.buildReportDir?.let { reportDir ->
val ts = SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(Calendar.getInstance().time)
val reportFile = reportDir.resolve("${gradle.rootProject.name}-build-$ts.txt")
return PlainTextBuildReportWriter(
outputFile = reportFile,
printMetrics = reportingSettings.includeMetricsInReport,
log = log
)
return PlainTextBuildReportWriter(
outputFile = reportFile,
printMetrics = reportingSettings.includeMetricsInReport,
log = log
)
}
}