Skip to content

Commit a16b497

Browse files
[tools] Improvements and cleanups to bisect script (#25698)
* Print errors from compiler build only on failure (reduce spam) * Better handling of errnouns builds
1 parent 5ad705f commit a16b497

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

project/scripts/bisect.scala

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,28 @@ class CommitBisect(validationScript: File, shouldFail: Boolean, bootstrapped: Bo
250250
val scala3CompilerProject = if bootstrapped then "scala3-compiler-bootstrapped" else "scala3-compiler"
251251
val scala3Project = if bootstrapped then "scala3-bootstrapped" else "scala3"
252252
val validationCommandStatusModifier = if shouldFail then "! " else "" // invert the process status if failure was expected
253+
val sbtPublishRecipe = Seq(
254+
"clean",
255+
"""set every doc := new File("unused")""",
256+
s"set scaladoc/Compile/resourceGenerators := (`$scala3Project`/Compile/resourceGenerators).value",
257+
s"$scala3Project/publishLocal",
258+
).mkString("; ")
259+
253260
val bisectRunScript = raw"""
254261
|scalaVersion=$$(sbt "print ${scala3CompilerProject}/version" | tail -n1)
255262
|rm -rf out
256263
|export JAVA_HOME=${sys.props("java.home")}
257-
|(sbt "clean; set every doc := new File(\"unused\"); set scaladoc/Compile/resourceGenerators := (\`${scala3Project}\`/Compile/resourceGenerators).value; ${scala3Project}/publishLocal" \
258-
| || (echo "Failed to build compiler, skip $$scalaVersion"; git bisect skip) \
259-
|) && ${validationCommandStatusModifier}${validationScript.getAbsolutePath} "$$scalaVersion"
264+
|sbt_build_log=$$(mktemp)
265+
|echo 'Running sbt publish recipe: sbt "$sbtPublishRecipe"'
266+
|if sbt '$sbtPublishRecipe' >"$$sbt_build_log" 2>&1; then
267+
| rm -f "$$sbt_build_log"
268+
| ${validationCommandStatusModifier}${validationScript.getAbsolutePath} "$$scalaVersion"
269+
|else
270+
| echo "Failed to build compiler, skip $$scalaVersion"
271+
| cat "$$sbt_build_log"
272+
| rm -f "$$sbt_build_log"
273+
| git bisect skip
274+
|fi
260275
""".stripMargin
261276
"git bisect start".!
262277
s"git bisect bad $fistBadHash".!

0 commit comments

Comments
 (0)