mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 21:35:42 +00:00
Surface Eagle warmup startup failures (#8370)
This commit is contained in:
@@ -241,6 +241,8 @@ main() {
|
||||
if [ -x "${WARMUP_SCRIPT}" ]; then
|
||||
if ! "${WARMUP_SCRIPT}" "localhost:${staging_port}"; then
|
||||
log_error "Warmup/smoke test failed, aborting deployment"
|
||||
log_error "Recent eagle-${staging} logs:"
|
||||
docker logs "eagle-${staging}" --tail 200 2>&1 || true
|
||||
docker compose -f "${COMPOSE_FILE}" stop "eagle-${staging}"
|
||||
cleanup_markers_on_failure "eagle-${active}"
|
||||
exit 1
|
||||
|
||||
@@ -107,6 +107,8 @@ object Main {
|
||||
|
||||
SimpleTimedLogger.printLogger.logLine("Starting!")
|
||||
|
||||
HistoryBackendStartupValidation.validate()
|
||||
|
||||
// Register shutdown hook to turn pending SQLite upload requests into bytes before flushing pending S3 saves.
|
||||
Runtime.getRuntime.addShutdownHook(new Thread(new Runnable {
|
||||
override def run(): Unit = {
|
||||
|
||||
@@ -636,6 +636,7 @@ scala_library(
|
||||
srcs = [
|
||||
"GameHistoryFactory.scala",
|
||||
"HistoryBackendConfig.scala",
|
||||
"HistoryBackendStartupValidation.scala",
|
||||
"PostgresHistory.scala",
|
||||
"SqliteHistory.scala",
|
||||
],
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package net.eagle0.eagle.service
|
||||
|
||||
object HistoryBackendStartupValidation {
|
||||
def validate(): Unit =
|
||||
if HistoryBackendConfig.usePostgres then PostgresHistory.requireConfigured()
|
||||
}
|
||||
@@ -21,8 +21,13 @@ scala_test(
|
||||
"//src/main/resources/net/eagle0/eagle:game_parameters",
|
||||
"//src/main/resources/net/eagle0/eagle:heroes",
|
||||
"//src/main/resources/net/eagle0/eagle:province_map",
|
||||
"//src/main/resources/net/eagle0/shardok:battalion_types",
|
||||
],
|
||||
deps = [
|
||||
"//src/main/scala/net/eagle0/eagle/library:engine",
|
||||
"//src/main/scala/net/eagle0/eagle/library/settings:history_backend",
|
||||
"//src/main/scala/net/eagle0/eagle/library/settings/loaders:battalion_type_loader",
|
||||
"//src/main/scala/net/eagle0/eagle/service/new_game_creation",
|
||||
"//src/main/scala/net/eagle0/eagle/service/new_game_creation:game_parameters_utils",
|
||||
"//src/main/scala/net/eagle0/eagle/service/new_game_creation:great_person",
|
||||
"//src/main/scala/net/eagle0/util/hero_generation:loaded_hero",
|
||||
|
||||
+27
@@ -1,9 +1,17 @@
|
||||
package net.eagle0.eagle.service.new_game_creation
|
||||
|
||||
import java.nio.file.Files
|
||||
|
||||
import net.eagle0.eagle.library.settings.loaders.BattalionTypeLoader
|
||||
import net.eagle0.eagle.library.settings.HistoryBackend
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
|
||||
class FixedNewGameCreationTest extends AnyFlatSpec with Matchers {
|
||||
System.setProperty("eagle.save.dir", Files.createTempDirectory("fixed_new_game_creation_test").toString)
|
||||
|
||||
private lazy val battalionTypes =
|
||||
BattalionTypeLoader.loadBattalionTypes(getClass.getResource("/net/eagle0/shardok/battalionTypes.tsv")).get
|
||||
|
||||
"ExpandedGameParameters" should "have no duplicate heroes between setFactionHeads and greatPeople" in {
|
||||
val params = GameParametersUtils.defaultExpandedGameParameters
|
||||
@@ -93,4 +101,23 @@ class FixedNewGameCreationTest extends AnyFlatSpec with Matchers {
|
||||
overlap.shouldBe(empty)
|
||||
}
|
||||
}
|
||||
|
||||
"FixedNewGameCreation" should "create the warmup-sized default game" in {
|
||||
val params = GameParametersUtils.defaultExpandedGameParameters
|
||||
|
||||
val previousHistoryBackend = HistoryBackend.stringValue
|
||||
HistoryBackend.setStringValue("sqlite")
|
||||
try {
|
||||
val engineAndResults = FixedNewGameCreation.createGame(
|
||||
expandedGameParameters = params,
|
||||
gameId = 0xfeedfaceL,
|
||||
persister = None,
|
||||
humanPlayerFactionLeaderNameTextIds = Vector(params.greatPeople.head.greatPerson.hero.nameTextId),
|
||||
playerCount = 2,
|
||||
allBattalionTypes = battalionTypes
|
||||
)
|
||||
|
||||
(engineAndResults.engine.currentState.factions.size >= 2).shouldBe(true)
|
||||
} finally HistoryBackend.setStringValue(previousHistoryBackend)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user