Compare commits

...
5 Commits
Author SHA1 Message Date
greg 43727f8284 Merge branch 'main' into feat/ai-draft
Validate game templates / validate (push) Successful in 9m41s
Validate game templates / boot-test (push) Skipped
Validate game templates / publish (push) Skipped
2026-10-25 15:10:22 +00:00
greg c23442e8fa Merge pull request 'fix(ark): retry the install; ready when advertising for join' (#3) from fix/ark-install-retry into main
Validate game templates / validate (push) Successful in 9m37s
Validate game templates / boot-test (push) Successful in 15m9s
Validate game templates / publish (push) Successful in 9m32s
2026-10-25 15:10:18 +00:00
greg ba09fe35d7 Merge branch 'main' into fix/ark-install-retry
Validate game templates / validate (push) Successful in 9m33s
Validate game templates / boot-test (push) Successful in 15m20s
Validate game templates / publish (push) Skipped
2026-10-25 07:09:33 +00:00
gregandClaude Opus 5.5 65cbb8cfd4 feat(ark): ready when advertising for join
Validate game templates / validate (push) Successful in 9m31s
Validate game templates / boot-test (push) Successful in 15m9s
Validate game templates / publish (push) Skipped
First boot with the install fix ran ARK for ~10 minutes and found, in
ShooterGame.log: "Server: ... has successfully started!", "EOS ownership
validation initialized: Success", "Full Startup: 36.26 seconds" and,
about two minutes later, "Server has completed startup and is now
advertising for join. (9.96GB Mem)". That last line is when players,
console players through EOS included, can join, so it is the
readyPattern; the real line is test.yaml's readyExample. Boot tests now
wait for it instead of only checking ARK stays up for 10 minutes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 02:35:52 -04:00
gregandClaude Opus 5.5 9fef27cd40 fix(ark): retry the server install before handing over to the image
The image's start_server runs SteamCMD once and carries on even when it
fails; SteamCMD's intermittent "Missing configuration" error then left
no server installed, so ARK exited and only the node's restart policy
saved it (a boot test would fail on the restart). First boot showed it.

The startup command now downloads SteamCMD if missing, runs the usual
"+login anonymous +quit" warm-up and installs app 2430930, retrying up
to three times until ArkAscendedServer.exe exists. start_server's own
install step then only validates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 02:25:45 -04:00
2 changed files with 5 additions and 4 deletions

No files matched your search

@@ -3,7 +3,7 @@ id: ark-survival-ascended-crossplay
name: 'ARK: Survival Ascended (Crossplay Dedicated Server)' name: 'ARK: Survival Ascended (Crossplay Dedicated Server)'
defaultDockerImage: mschnitzer/asa-linux-server:latest defaultDockerImage: mschnitzer/asa-linux-server:latest
containerUser: "25000:25000" containerUser: "25000:25000"
defaultStartupCommand: bash -c 'mkdir -p /server /data/Steam /data/steamcmd /data/cluster-shared && rm -rf /home/gameserver/server-files /home/gameserver/Steam /home/gameserver/steamcmd /home/gameserver/cluster-shared && ln -sfn /server /home/gameserver/server-files && ln -sfn /data/Steam /home/gameserver/Steam && ln -sfn /data/steamcmd /home/gameserver/steamcmd && ln -sfn /data/cluster-shared /home/gameserver/cluster-shared && export ASA_START_PARAMS="${ASA_START_PARAMS:-${SERVER_MAP:-TheIsland_WP}?listen?Port=${PORT:-7777}?RCONPort=${RCONPORT:-27020}?RCONEnabled=True -WinLiveMaxPlayers=${MAX_PLAYERS:-70} -ServerPlatform=ALL}" && exec /usr/bin/start_server' defaultStartupCommand: bash -c 'mkdir -p /server /data/Steam /data/steamcmd /data/cluster-shared && rm -rf /home/gameserver/server-files /home/gameserver/Steam /home/gameserver/steamcmd /home/gameserver/cluster-shared && ln -sfn /server /home/gameserver/server-files && ln -sfn /data/Steam /home/gameserver/Steam && ln -sfn /data/steamcmd /home/gameserver/steamcmd && ln -sfn /data/cluster-shared /home/gameserver/cluster-shared && (cd /home/gameserver/steamcmd && { [ -x steamcmd.sh ] || wget -qO- https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar xz; } && for i in 1 2 3; do ./steamcmd.sh +login anonymous +quit; ./steamcmd.sh +force_install_dir /home/gameserver/server-files +login anonymous +app_update 2430930 validate +quit; [ -f /home/gameserver/server-files/ShooterGame/Binaries/Win64/ArkAscendedServer.exe ] && break; echo "ARK install attempt $i failed, retrying in 15s"; sleep 15; done) && export ASA_START_PARAMS="${ASA_START_PARAMS:-${SERVER_MAP:-TheIsland_WP}?listen?Port=${PORT:-7777}?RCONPort=${RCONPORT:-27020}?RCONEnabled=True -WinLiveMaxPlayers=${MAX_PLAYERS:-70} -ServerPlatform=ALL}" && exec /usr/bin/start_server'
requiredMemoryMb: 16384 requiredMemoryMb: 16384
requiredDiskMb: 32768 requiredDiskMb: 32768
defaultPorts: defaultPorts:
@@ -325,6 +325,7 @@ agnosticCommandConfig:
restPortKey: null restPortKey: null
restUser: null restUser: null
logFilePath: ShooterGame/Saved/Logs/ShooterGame.log logFilePath: ShooterGame/Saved/Logs/ShooterGame.log
readyPattern: Server has completed startup and is now advertising for join
backupPaths: backupPaths:
- ShooterGame/Saved - ShooterGame/Saved
maxBackupSizeMb: 4096 maxBackupSizeMb: 4096
@@ -1,6 +1,6 @@
# yaml-language-server: $schema=../../schema/test.schema.json # yaml-language-server: $schema=../../schema/test.schema.json
# Values CI uses to boot-test this game. Never put real credentials here: map them under 'secrets'. # Values CI uses to boot-test this game. Never put real credentials here: map them under 'secrets'.
# No readyPattern yet: the server must stay up for 10 minutes, which covers the ~13 GB first # Ready means advertising for join, which comes about 2 minutes after "Full Startup"; the first boot also
# download and Proton's slow first start. # installs ~13 GB and Proton, so the timeout is generous.
settleSec: 600 readyExample: '[2026.10.25-06.32.24:246][239]Server has completed startup and is now advertising for join. (9.96GB Mem)'
timeoutSec: 2400 timeoutSec: 2400