mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-13 06:59:44 +07:00
build scripts: failing-fast upon a failure reported during a local execution
IJI-1455 (cherry picked from commit 24db0490b9a6fc5d8dfabfd31580449e7cd64acf) GitOrigin-RevId: 8a0cfe2c3c8b7aee86f2275db3408f92cfef1219
This commit is contained in:
committed by
intellij-monorepo-bot
parent
58072bd39b
commit
8b8c09642f
@@ -2,6 +2,7 @@
|
||||
package org.jetbrains.intellij.build.logging
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.intellij.build.BuildScriptsLoggedError
|
||||
|
||||
abstract class BuildMessageLogger {
|
||||
abstract fun processMessage(message: LogMessage)
|
||||
@@ -35,9 +36,18 @@ class ConsoleBuildMessageLogger : BuildMessageLoggerBase() {
|
||||
}
|
||||
|
||||
override fun processMessage(message: LogMessage) {
|
||||
// reported by trace exporter
|
||||
if (message.kind != LogMessage.Kind.BLOCK_STARTED && message.kind != LogMessage.Kind.BLOCK_FINISHED) {
|
||||
super.processMessage(message)
|
||||
when (message.kind) {
|
||||
// reported by trace exporter
|
||||
LogMessage.Kind.BLOCK_STARTED, LogMessage.Kind.BLOCK_FINISHED -> {}
|
||||
// failing-fast upon a build problem
|
||||
LogMessage.Kind.BUILD_PROBLEM -> throw BuildScriptsLoggedError(message.text)
|
||||
LogMessage.Kind.COMPILATION_ERRORS -> {
|
||||
check(message is CompilationErrorsLogMessage) {
|
||||
"Unexpected compilation errors message type: ${message::class.java.canonicalName}"
|
||||
}
|
||||
throw BuildScriptsLoggedError(message.errorMessages.joinToString(prefix = "${message.text}:\n", separator = "\n"))
|
||||
}
|
||||
else -> super.processMessage(message)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import kotlinx.collections.immutable.PersistentMap
|
||||
import kotlinx.collections.immutable.persistentMapOf
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.serialization.Serializable
|
||||
import org.jetbrains.intellij.build.dependencies.TeamCityHelper
|
||||
import org.jetbrains.intellij.build.io.DEFAULT_TIMEOUT
|
||||
import org.jetbrains.intellij.build.productRunner.IntellijProductRunner
|
||||
import org.jetbrains.intellij.build.telemetry.use
|
||||
@@ -185,14 +184,9 @@ suspend inline fun <T> BuildContext.executeStep(
|
||||
throw e
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
if (TeamCityHelper.isUnderTeamCity) {
|
||||
span.recordException(e)
|
||||
options.buildStepListener.onFailure(stepId = stepId, failure = e, messages = messages)
|
||||
null
|
||||
}
|
||||
else {
|
||||
throw e
|
||||
}
|
||||
span.recordException(e)
|
||||
options.buildStepListener.onFailure(stepId = stepId, failure = e, messages = messages)
|
||||
null
|
||||
}
|
||||
finally {
|
||||
options.buildStepListener.onCompletion(stepId, messages)
|
||||
|
||||
@@ -187,6 +187,9 @@ private class DebugLogger {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used unconditionally by both [TeamCityBuildMessageLogger] and [ConsoleBuildMessageLogger]
|
||||
*/
|
||||
private class PrintWriterBuildMessageLogger(
|
||||
private val output: StringBuilder,
|
||||
private val disposer: Consumer<PrintWriterBuildMessageLogger>,
|
||||
|
||||
Reference in New Issue
Block a user