mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
build scripts: clean build retry for incremental compilation
GitOrigin-RevId: 2351142c2c5de9dfb48a166520fb6217b3b80a66
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f7d09ea56a
commit
075f8d47e8
@@ -11,4 +11,9 @@ class JpsCompilationData(val dataStorageRoot: Path, val buildLogFile: Path, cate
|
||||
var projectDependenciesResolved: Boolean = false
|
||||
|
||||
val categoriesWithDebugLevel: String = categoriesWithDebugLevelNullable ?: ""
|
||||
fun reset() {
|
||||
compiledModules.clear()
|
||||
compiledModuleTests.clear()
|
||||
statisticsReported = false
|
||||
}
|
||||
}
|
||||
|
||||
+25
-4
@@ -130,17 +130,38 @@ object CompiledClasses {
|
||||
context.messages.progress("Compiling project")
|
||||
context.compilationData.statisticsReported = false
|
||||
val runner = JpsCompilationRunner(context)
|
||||
try {
|
||||
runner.compile(context, moduleNames, includingTestsInModules)
|
||||
}
|
||||
catch (e: Exception) {
|
||||
if (!context.options.incrementalCompilation) {
|
||||
throw e
|
||||
}
|
||||
context.messages.warning("Incremental compilation failed. Re-trying with clean build.")
|
||||
context.options.incrementalCompilation = false
|
||||
context.compilationData.reset()
|
||||
runner.compile(context, moduleNames, includingTestsInModules)
|
||||
val successMessage = "Compilation successful after clean build retry"
|
||||
context.messages.info(successMessage)
|
||||
println("##teamcity[buildStatus status='SUCCESS' text='$successMessage']")
|
||||
context.messages.reportStatisticValue("Incremental compilation failures", "1")
|
||||
}
|
||||
}
|
||||
|
||||
private fun JpsCompilationRunner.compile(context: CompilationContext,
|
||||
moduleNames: Collection<String>?,
|
||||
includingTestsInModules: List<String>?) {
|
||||
when {
|
||||
moduleNames != null -> runner.buildModules(moduleNames.map(context::findRequiredModule))
|
||||
includingTestsInModules != null -> runner.buildProduction()
|
||||
moduleNames != null -> buildModules(moduleNames.map(context::findRequiredModule))
|
||||
includingTestsInModules != null -> buildProduction()
|
||||
else -> {
|
||||
runner.buildAll()
|
||||
buildAll()
|
||||
context.options.useCompiledClassesFromProjectOutput = true
|
||||
}
|
||||
}
|
||||
context.options.incrementalCompilation = true
|
||||
includingTestsInModules?.forEach {
|
||||
runner.buildModuleTests(context.findRequiredModule(it))
|
||||
buildModuleTests(context.findRequiredModule(it))
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-3
@@ -182,12 +182,11 @@ class PortableCompilationCache(private val context: CompilationContext) {
|
||||
downloadCache()
|
||||
successMessage = "Compilation successful after retry with fresh Remote Cache"
|
||||
}
|
||||
context.compilationData.compiledModules.clear()
|
||||
context.compilationData.compiledModuleTests.clear()
|
||||
context.compilationData.statisticsReported = false
|
||||
context.compilationData.reset()
|
||||
jps.buildAll()
|
||||
context.messages.info(successMessage)
|
||||
println("##teamcity[buildStatus status='SUCCESS' text='$successMessage']")
|
||||
context.messages.reportStatisticValue("Incremental compilation failures", "1")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user