Skip to content

Commit 75a06ba

Browse files
committed
Retry --native --cross builds on the CI
1 parent de4b076 commit 75a06ba

File tree

2 files changed

+74
-68
lines changed

2 files changed

+74
-68
lines changed

modules/integration/src/test/scala/scala/cli/integration/PackageTestDefinitions.scala

Lines changed: 51 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1356,59 +1356,20 @@ abstract class PackageTestDefinitions extends ScalaCliSuite with TestScalaVersio
13561356
packageDescription = packageOpts.headOption.getOrElse("bootstrap")
13571357
} {
13581358
test(s"package with main method in test scope ($packageDescription)") {
1359-
val mainClass = "TestScopeMain"
1360-
val testScopeFileName = s"$mainClass.test.scala"
1361-
val message = "Hello"
1362-
val outputFile = mainClass + extension
1363-
TestInputs(
1364-
os.rel / "Messages.scala" -> s"""object Messages { val msg = "$message" }""",
1365-
os.rel / testScopeFileName -> s"""object $mainClass extends App { println(Messages.msg) }"""
1366-
).fromRoot { root =>
1367-
os.proc(
1368-
TestUtil.cli,
1369-
"--power",
1370-
"package",
1371-
"--test",
1372-
extraOptions,
1373-
".",
1374-
packageOpts
1375-
)
1376-
.call(cwd = root)
1377-
val outputFilePath = root / outputFile
1378-
expect(os.isFile(outputFilePath))
1379-
val output =
1380-
if (packageDescription == libraryArg)
1381-
os.proc(TestUtil.cli, "run", outputFilePath).call(cwd = root).out.trim()
1382-
else if (packageDescription == jsArg)
1383-
os.proc(node, outputFilePath).call(cwd = root).out.trim()
1384-
else {
1385-
expect(Files.isExecutable(outputFilePath.toNIO))
1386-
TestUtil.maybeUseBash(outputFilePath)(cwd = root).out.trim()
1387-
}
1388-
expect(output == message)
1389-
}
1390-
}
1391-
1392-
if (actualScalaVersion == Constants.scala3Next)
1393-
test(s"package ($packageDescription, --cross)") {
1394-
val crossDirective =
1395-
s"//> using scala $actualScalaVersion ${Constants.scala213} ${Constants.scala212}"
1396-
val mainClass = "TestScopeMain"
1397-
val mainFile = s"$mainClass.scala"
1398-
val message = "Hello"
1399-
val outputFile = mainClass + extension
1359+
TestUtil.retryOnCi() {
1360+
val mainClass = "TestScopeMain"
1361+
val testScopeFileName = s"$mainClass.test.scala"
1362+
val message = "Hello"
1363+
val outputFile = mainClass + extension
14001364
TestInputs(
1401-
os.rel / "Messages.scala" ->
1402-
s"""$crossDirective
1403-
|object Messages { val msg = "$message" }""".stripMargin,
1404-
os.rel / mainFile ->
1405-
s"""object $mainClass extends App { println(Messages.msg) }""".stripMargin
1365+
os.rel / "Messages.scala" -> s"""object Messages { val msg = "$message" }""",
1366+
os.rel / testScopeFileName -> s"""object $mainClass extends App { println(Messages.msg) }"""
14061367
).fromRoot { root =>
14071368
os.proc(
14081369
TestUtil.cli,
14091370
"--power",
14101371
"package",
1411-
"--cross",
1372+
"--test",
14121373
extraOptions,
14131374
".",
14141375
packageOpts
@@ -1428,6 +1389,49 @@ abstract class PackageTestDefinitions extends ScalaCliSuite with TestScalaVersio
14281389
expect(output == message)
14291390
}
14301391
}
1392+
}
1393+
1394+
if (actualScalaVersion == Constants.scala3Next)
1395+
test(s"package ($packageDescription, --cross)") {
1396+
TestUtil.retryOnCi() {
1397+
val crossDirective =
1398+
s"//> using scala $actualScalaVersion ${Constants.scala213} ${Constants.scala212}"
1399+
val mainClass = "TestScopeMain"
1400+
val mainFile = s"$mainClass.scala"
1401+
val message = "Hello"
1402+
val outputFile = mainClass + extension
1403+
TestInputs(
1404+
os.rel / "Messages.scala" ->
1405+
s"""$crossDirective
1406+
|object Messages { val msg = "$message" }""".stripMargin,
1407+
os.rel / mainFile ->
1408+
s"""object $mainClass extends App { println(Messages.msg) }""".stripMargin
1409+
).fromRoot { root =>
1410+
os.proc(
1411+
TestUtil.cli,
1412+
"--power",
1413+
"package",
1414+
"--cross",
1415+
extraOptions,
1416+
".",
1417+
packageOpts
1418+
)
1419+
.call(cwd = root)
1420+
val outputFilePath = root / outputFile
1421+
expect(os.isFile(outputFilePath))
1422+
val output =
1423+
if (packageDescription == libraryArg)
1424+
os.proc(TestUtil.cli, "run", outputFilePath).call(cwd = root).out.trim()
1425+
else if (packageDescription == jsArg)
1426+
os.proc(node, outputFilePath).call(cwd = root).out.trim()
1427+
else {
1428+
expect(Files.isExecutable(outputFilePath.toNIO))
1429+
TestUtil.maybeUseBash(outputFilePath)(cwd = root).out.trim()
1430+
}
1431+
expect(output == message)
1432+
}
1433+
}
1434+
}
14311435
}
14321436
}
14331437
}

modules/integration/src/test/scala/scala/cli/integration/RunTestsDefault.scala

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -162,27 +162,29 @@ class RunTestsDefault extends RunTestDefinitions
162162
test(
163163
s"run --cross $platformDesc $actualScalaVersion, ${Constants.scala213} and ${Constants.scala212} ($scopeDesc scope)"
164164
) {
165-
TestInputs {
166-
os.rel / fileName ->
167-
s"""//> using scala $actualScalaVersion ${Constants.scala213} ${Constants.scala212}
168-
|object Main extends App {
169-
| println("$expectedMessage")
170-
|}
171-
|""".stripMargin
172-
}.fromRoot { root =>
173-
val r =
174-
os.proc(
175-
TestUtil.cli,
176-
"run",
177-
".",
178-
"--cross",
179-
"--power",
180-
extraOptions,
181-
scopeOptions,
182-
platformOptions
183-
)
184-
.call(cwd = root)
185-
expect(r.out.trim() == expectedMessage)
165+
TestUtil.retryOnCi() {
166+
TestInputs {
167+
os.rel / fileName ->
168+
s"""//> using scala $actualScalaVersion ${Constants.scala213} ${Constants.scala212}
169+
|object Main extends App {
170+
| println("$expectedMessage")
171+
|}
172+
|""".stripMargin
173+
}.fromRoot { root =>
174+
val r =
175+
os.proc(
176+
TestUtil.cli,
177+
"run",
178+
".",
179+
"--cross",
180+
"--power",
181+
extraOptions,
182+
scopeOptions,
183+
platformOptions
184+
)
185+
.call(cwd = root)
186+
expect(r.out.trim() == expectedMessage)
187+
}
186188
}
187189
}
188190
}

0 commit comments

Comments
 (0)