Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
aee8f16
chore(deps): bump actions/add-to-project from 1.0.2 to 2.0.0 (#4926)
dependabot[bot] Oct 2, 2026
d208f88
chore(deps): bump actions/checkout from 5 to 7 (#4933)
dependabot[bot] Oct 2, 2026
13a7bc4
chore(deps): bump actions/cache from 4 to 6 (#4945)
dependabot[bot] Oct 2, 2026
4081269
chore(deps): bump actions/github-script from 7 to 9 (#4946)
dependabot[bot] Oct 2, 2026
3ae187f
chore(ci): remove dependabot auto-merge workflow (#4964)
dgibbs64 Oct 2, 2026
be02942
chore(sync): synced file(s) with dgibbs64/repo-sync (#4949)
dgibbs64 Oct 2, 2026
a956798
fix(modules): make update_bb.sh executable (#4965)
dgibbs64 Oct 2, 2026
1455800
fix(sdtd): read telnet password into telnetpassword (#4968)
dgibbs64 Oct 2, 2026
3f61ca6
fix(vh): document how to disable crossplay (#4969)
dgibbs64 Oct 2, 2026
e12ae36
fix(steamcmd): improve missing configuration diagnostics (#4951)
dgibbs64 Oct 2, 2026
25a94f5
fix: [Factorio] Update startparameters to load the latest server auto…
Doug-Murphy Oct 2, 2026
f0db333
fix(deps): support deb822 apt sources on Debian (#4952)
BreezeDelegate Oct 3, 2026
52373e8
fix(fastdl): include Source resource files (#4953)
BreezeDelegate Oct 3, 2026
0a7c1e1
feat(cs2server): add Metamod:Source 2.0 and CounterStrikeSharp mod su…
borzaka Oct 3, 2026
fb03bd8
fix(ci): label fork PRs and skip empty Details Check matrix (#4971)
dgibbs64 Oct 3, 2026
22f84b3
feat(csgoserver): support the standalone CS:GO client (App ID 4465480…
borzaka Oct 3, 2026
c3eb623
feat(rsdwserver): add RuneScape: Dragonwilds server (#4921)
JSaterdalen Oct 3, 2026
6bb470f
fix(sm): convert sm-icon.png from JPEG to PNG (#4973)
dgibbs64 Oct 3, 2026
6edc5b6
fix(core): fall back to 80 columns when no terminal width is availabl…
dgibbs64 Oct 3, 2026
b50339a
fix(deps): check passwordless sudo before prompting with sudo -v (#4980)
dgibbs64 Oct 4, 2026
27f070b
fix(core): handle bootstrap before logging and exit modules are loade…
dgibbs64 Oct 4, 2026
bf864f0
fix(rsdwserver): download default DedicatedServer.ini on install (#4982)
dgibbs64 Oct 4, 2026
0043851
feat(newserver): add Hytale server support (#4928)
andrewqsantos Oct 4, 2026
f9b9bcc
fix(deps): add libatomic for American Truck Simulator and Euro Truck …
dgibbs64 Oct 9, 2026
fe8e3af
fix(ci): run apt-get update before installing Details Check dependenc…
dgibbs64 Oct 9, 2026
15f542d
fix(pz): pass the admin password as a start parameter (#4991)
dgibbs64 Oct 9, 2026
af8cb38
fix(ts3): query the ServerQuery address set in query_ip (#4975)
dgibbs64 Oct 9, 2026
3cf75e2
ci(details-check): run servers in shards from the checkout (#4993)
dgibbs64 Oct 9, 2026
a390ebe
fix(sf): drop ServerQueryPort and BeaconPort removed in Satisfactory …
dgibbs64 Oct 9, 2026
77d8b6f
fix(col): monitor Colony Survival with a TCP query (#4977)
dgibbs64 Oct 9, 2026
b8007e8
fix(steamcmd): work around Invalid platform errors (L4D2) (#4979)
dgibbs64 Oct 9, 2026
af19493
chore(deps): bump github/issue-labeler from 3.4 to 3.5 (#4984)
dependabot[bot] Oct 9, 2026
76170b9
chore(sync): synced file(s) with dgibbs64/repo-sync (#4978)
dgibbs64 Oct 9, 2026
6cf5aa3
fix(monitor): anchor tmux session checks to avoid matching other inst…
yourfate Oct 10, 2026
28b1d67
fix(mods): only look up mod URLs for the game the server runs (#4983)
borzaka Oct 10, 2026
ee5b54b
fix(install): stop when a server has no download configuration (#4996)
dgibbs64 Oct 10, 2026
00960d8
chore(lint): fix Super Linter errors on develop (#5001)
dgibbs64 Oct 10, 2026
75d4a77
fix(monitor): detect update, start and stop run with their short alia…
dgibbs64 Oct 10, 2026
f098804
chore(lint): fix Ruff errors in query_gsquery.py (#5003)
dgibbs64 Oct 10, 2026
5b099d5
fix(monitor): show the queried address on the DELAY and WAIT lines (#…
borzaka Oct 10, 2026
fe5ae6b
Release v26.3.0
dgibbs64 Oct 10, 2026
d6708cf
Merge remote-tracking branch 'origin/master' into release/v26.3.0
dgibbs64 Oct 10, 2026
ab31459
Release v26.3.0 (#5007)
dgibbs64 Oct 10, 2026
37fc369
feat(workshop): download Steam Workshop mods for Arma 3 and DayZ (#5008)
dgibbs64 Oct 10, 2026
b516b9c
feat(workshop): add Steam Workshop downloads for Squad and Starbound …
dgibbs64 Oct 11, 2026
eafa45a
feat(workshop): add Steam Workshop downloads for Squad 44 and Operati…
dgibbs64 Oct 11, 2026
f6eb8cd
feat(workshop): add Steam Workshop downloads for Barotrauma and Stati…
dgibbs64 Oct 11, 2026
f3026d3
refactor(workshop): edit Barotrauma config_player.xml with sed instea…
dgibbs64 Oct 11, 2026
ed1162e
feat(workshop): add Steam Workshop downloads for Colony Survival (#5016)
dgibbs64 Oct 11, 2026
65de3b4
feat(workshop): add Steam Workshop downloads for Left 4 Dead 2 (#5018)
dgibbs64 Oct 11, 2026
c0a5ced
feat(workshop): add Steam Workshop downloads for Hurtworld (#5019)
dgibbs64 Oct 11, 2026
b081a57
feat(workshop): add Steam Workshop downloads for Soldat (#5020)
dgibbs64 Oct 11, 2026
6017300
fix(monitor): log the start and stop checks under their own name (#5011)
borzaka Oct 11, 2026
76491eb
fix(monitor): detect running commands when the script is run by its f…
borzaka Oct 11, 2026
c0b5b9b
feat(rwrserver): add Running With Rifles server (#5021)
dgibbs64 Oct 11, 2026
973badf
fix(config): correct console interaction, stop modes and SCP:SL EULA …
dgibbs64 Oct 11, 2026
e712367
fix(ios): use 64-bit server and stop map reload loop (#5024)
dgibbs64 Oct 14, 2026
6e8b9c0
feat(stop): warn players in-game before stop, restart and update, and…
dgibbs64 Oct 14, 2026
fcc337f
feat(backup): run backups postponed by players once the server is emp…
dgibbs64 Oct 14, 2026
f6454dc
fix(modules): make info_messages.sh executable (#5030)
dgibbs64 Oct 14, 2026
5714958
fix(vints): remove old assets before extracting an update (#5032)
dgibbs64 Oct 14, 2026
b42436a
fix(rwserver): stop Rising World gracefully with shutdown (#5031)
dgibbs64 Oct 14, 2026
c753a69
feat(stop): add warning chat commands for Avorion, Craftopia, MTA, Ne…
dgibbs64 Oct 14, 2026
2a49401
fix(ut99): use System directory for patch 469f and later (#5034)
dgibbs64 Oct 14, 2026
4d3e1ec
fix(postdetails): remove shared temporary status file (#5035)
dgibbs64 Oct 14, 2026
8dcb527
feat(docker): move game server images to Ubuntu 26.04 (#5028)
dgibbs64 Oct 15, 2026
05bae92
fix(ndserver): download Nuclear Dawn game content from app 17710 (#5040)
dgibbs64 Oct 15, 2026
05e61dc
feat: remove SCP: Secret Laboratory ServerMod (scpslsm) (#5038)
dgibbs64 Oct 15, 2026
d310a7f
fix(bf1942,bfv): run on Ubuntu 24.04+ by providing 32-bit ncurses 5 (…
dgibbs64 Oct 15, 2026
84ee98e
fix(ut3server): read web admin enabled flag and port from UTWeb.ini (…
dgibbs64 Oct 15, 2026
80ac728
fix(fastdl): collect GoldSrc content with the GoldSrc file layout (#5…
dgibbs64 Oct 15, 2026
8ef06ff
fix(core): stop prompts looping forever when no input is available (#…
dgibbs64 Oct 15, 2026
d907924
feat(jk3server): add Jedi Academy with OpenJK (#3891)
AlexCS1337 Oct 15, 2026
5d625d9
fix(details): detect and display Source Steam ports (#5046)
dgibbs64 Oct 16, 2026
1c17f03
fix(deps): sudo handling and messages when auto-install cannot prompt…
dgibbs64 Oct 16, 2026
c830bc2
fix(info): stop shell-expanding parsed config values (#5052)
dgibbs64 Oct 16, 2026
4ebb89f
refactor(stop): use bash /dev/tcp for telnet shutdown, drop expect (#…
dgibbs64 Oct 16, 2026
e68664e
fix(jc3server): add libatomic dependency (#5053)
dgibbs64 Oct 16, 2026
c5297b7
fix(security): download SteamCMD and MTA files over HTTPS (#5054)
dgibbs64 Oct 16, 2026
497e76b
fix(update): continue starting the server after updateonstart applies…
dgibbs64 Oct 16, 2026
ba81fc0
fix(sven): drop libssl3:i386 dependency on Debian 12 and 13 (#5058)
dgibbs64 Oct 16, 2026
8c54410
feat(details): show missing dependencies in details and post-details …
dgibbs64 Oct 16, 2026
cd9db5a
feat(tf2): use 64-bit server by default (#5059)
dgibbs64 Oct 16, 2026
cfda3f6
fix(ut3): install default configs from Game-Server-Configs (#5062)
dgibbs64 Oct 16, 2026
e05c4a4
fix(ti): pass EOS credentials as launch arguments (#5061)
dgibbs64 Oct 16, 2026
543bb3f
fix(update): report failed updates instead of treating them as succes…
dgibbs64 Oct 16, 2026
629c317
fix(monitor): recheck backup and update before restarting the server …
dgibbs64 Oct 16, 2026
907d271
fix(triage): parse SteamCMD app_info and respect manual Linux labels …
dgibbs64 Oct 16, 2026
0421938
fix(triage): parse SteamCMD app_info and respect manual Linux labels …
dgibbs64 Oct 16, 2026
daad252
fix(triage): match Linux check verdict to a maintainer-set label (#5065)
dgibbs64 Oct 16, 2026
f71b0da
fix(triage): match Linux check verdict to a maintainer-set label (#5066)
dgibbs64 Oct 16, 2026
1a37fe9
fix(permissions): accept files accessible through groups or ACLs (#5067)
dgibbs64 Oct 16, 2026
931509f
fix(security): download linuxgsm.download files over HTTPS (#5070)
dgibbs64 Oct 17, 2026
afae02c
fix(deps): fix bmdm on Debian 13 and hyt on older distros (#5071)
dgibbs64 Oct 17, 2026
6c9e5d1
fix(cod,cod2,coduo,mohaa): provide 32-bit libstdc++5 on newer distros…
dgibbs64 Oct 17, 2026
12c6f4d
fix(bt): read server name, max players and tick rate in both config f…
dgibbs64 Oct 17, 2026
4ae7a52
fix(check-deps): validate Minecraft Java runtime (#5075)
dgibbs64 Oct 17, 2026
be39f6e
fix: report CPU topology and frequency accurately (#5076)
dgibbs64 Oct 17, 2026
26522ca
fix: restore executable bit on check_deps.sh and info_messages.sh (#5…
dgibbs64 Oct 17, 2026
e0f5741
chore: automate milestones and release closing for linked issues (#5080)
dgibbs64 Oct 17, 2026
1c6eb98
chore: enforce PR template and tidy its sections (#5078)
dgibbs64 Oct 17, 2026
9036f58
chore(sync): synced local '.github/' with remote 'general/.github/' (…
dgibbs64 Oct 17, 2026
7107e1d
fix(ci): skip PR body check for repo-sync PRs (#5083)
dgibbs64 Oct 17, 2026
c4a5c50
ci: add milestone sync and release issue workflows to master
dgibbs64 Oct 17, 2026
db1a751
chore: add updated PR template to master
dgibbs64 Oct 17, 2026
76131ec
Merge pull request #5085 from GameServerManagers/ci/milestone-workflo…
dgibbs64 Oct 17, 2026
0e0a247
chore(sync): synced local '.github/' with remote 'general/.github/' (…
dgibbs64 Oct 17, 2026
be2d940
fix(ck): allocate unique Xvfb displays (#5074)
dgibbs64 Oct 17, 2026
4197b3a
fix(deps): use Java 25 for mc and pmc on Ubuntu 22.04 (#5079)
dgibbs64 Oct 17, 2026
e76e35b
fix(deps): fix RHEL family dependency lists for Rocky Linux 9 (#5077)
dgibbs64 Oct 17, 2026
6872f09
fix: repair console timestamp logging (#5073)
dgibbs64 Oct 17, 2026
57c73bc
fix(steamcmd): stream progress output and propagate SteamCMD exit cod…
dgibbs64 Oct 17, 2026
d8ba5da
feat(ceserver): add Conan Exiles server (#5068)
dgibbs64 Oct 17, 2026
c2a1bba
fix: handle virtualization detection failures (#5086)
dgibbs64 Oct 17, 2026
24969ba
fix(ut99): validate and retry release API responses (#5089)
dgibbs64 Oct 18, 2026
811ddaf
fix(ci): activate Java 25 for Minecraft update checks (#5090)
dgibbs64 Oct 18, 2026
3443716
fix(ci): leave milestone assignment to maintainers (#5091)
dgibbs64 Oct 18, 2026
62a79ca
Merge master into develop
dgibbs64 Oct 18, 2026
a43b4eb
Release v26.4.0
dgibbs64 Oct 18, 2026
2909ed0
fix(install): download SteamCMD games without fn_update_apply (#5093)
dgibbs64 Oct 18, 2026
4d947fd
Merge develop into release/v26.4.0
dgibbs64 Oct 18, 2026
0f1db22
Merge pull request #5092 from GameServerManagers/release/v26.4.0
dgibbs64 Oct 18, 2026
da67b9c
fix(deps): bump http-cache-semantics to 4.3.0 (#5096)
dgibbs64 Oct 22, 2026
abff947
fix(triage): respect manual game/engine labels and skip closed issues…
dgibbs64 Oct 22, 2026
0617474
fix(triage): respect manual game/engine labels and skip closed issues…
dgibbs64 Oct 22, 2026
a477b50
fix(triage): respect manual game/engine labels and skip closed issues…
dgibbs64 Oct 22, 2026
034471f
feat(fastdl): incremental, parallel FastDL with custom folders and ex…
dgibbs64 Oct 23, 2026
1ed97ac
feat(newserver): add Half-Life WON2 server (#5104)
dgibbs64 Oct 23, 2026
3d43749
feat(newserver): add Counter-Strike WON2 server (#5105)
dgibbs64 Oct 23, 2026
aa5344b
fix(core): propagate archive extraction and copy failures (#5109)
guilherme-praca Oct 30, 2026
ff15be6
fix(core): follow-up failure handling for extraction, updates and log…
dgibbs64 Oct 30, 2026
5107135
feat(core): add extraparams to append custom start parameters (#4970)
borzaka Oct 30, 2026
68d2697
feat(core): use plain line-based output when stdout is not a terminal…
dgibbs64 Oct 31, 2026
a3b92f7
fix(update-lgsm): build updated game script in tmpdir and restore bac…
dgibbs64 Oct 31, 2026
a1bdac1
fix(mods_list): update AMX Mod X version to latest release (#5115)
nasenov Oct 31, 2026
bd08aff
fix(kf2): create the KFGame/Cache map-load directory on install (#5108)
heyvaldemar Oct 31, 2026
eed5036
fix(mods): resolve AMX Mod X packages from the latest 1.10 build (#5119)
borzaka Oct 31, 2026
637ded1
feat(monitor): show local port state after query failures (#5111)
BreezeDelegate Oct 31, 2026
5d5bd40
feat(cs2server): add MatchZy mod (#5088)
borzaka Oct 31, 2026
c763125
revert: fix(kf2): create the KFGame/Cache map-load directory on insta…
dgibbs64 Oct 31, 2026
5bf2e74
fix(monitor): tell a hung server apart from a port conflict in the qu…
dgibbs64 Oct 31, 2026
3c6b78f
fix(cs2server): add libicu dependency for CounterStrikeSharp (#5121)
dgibbs64 Oct 31, 2026
b9bcc88
fix(btserver): use the versioned ICU runtime instead of libicu-dev (#…
dgibbs64 Oct 31, 2026
65aeb3f
fix(alerts): show Matrix and ntfy alerts in details and stats (#5123)
dgibbs64 Oct 31, 2026
9065a30
fix(btserver): drop the ICU dependency (#5124)
dgibbs64 Oct 31, 2026
cfbf7bb
fix(deps): add procps so pgrep and ps are always installed (#5125)
dgibbs64 Oct 31, 2026
cbc0f74
fix(deps): install libxml2-utils for xmllint on Debian 13 (#5126)
dgibbs64 Oct 31, 2026
79d0fbb
feat: add HTML formatting to Matrix alert messages (#5087)
Xinayder Oct 31, 2026
1e40374
feat(orarserver): add OpenRA Red Alert dedicated server (#5102)
dgibbs64 Oct 31, 2026
0592b98
feat(luanti): add Luanti server support (#5101)
dgibbs64 Oct 31, 2026
71f16e5
feat(bfeserver): add Battlefront Eternal server (#5116)
dgibbs64 Oct 31, 2026
0fb301a
fix(gamedig): stop npm waiting on a registry that does not answer (#5…
dgibbs64 Nov 1, 2026
4606936
feat(fivemserver): add FiveM server (#5103)
dgibbs64 Nov 1, 2026
1b66cf8
fix(update): stop a second update running while one is in progress (#…
dgibbs64 Nov 1, 2026
eeb6c9a
fix(ct): keep Craftopia saves inside serverfiles (#5131)
dgibbs64 Nov 1, 2026
41e0930
fix(backup): include game data kept outside rootdir (#5129)
dgibbs64 Nov 1, 2026
05c883e
feat(ci): fill assignee, outcome, type and milestone on closed issues…
dgibbs64 Nov 1, 2026
68a78a6
feat(ci): fill assignee, outcome, type and milestone on closed issues…
dgibbs64 Nov 1, 2026
6c2e06a
Merge pull request #5137 from GameServerManagers/ci/issue-close-field…
dgibbs64 Nov 1, 2026
a3e0960
feat(ci): fail PR Body Check when a Fixes issue is not linked in Deve…
dgibbs64 Nov 1, 2026
7200565
fix(zmr): install the previous2021 Source SDK 2013 build (#5147)
dgibbs64 Nov 3, 2026
2eb63e4
chore(install): rebuild hosted server archives with normalised owners…
dgibbs64 Nov 3, 2026
5e10a81
fix(logs): rotate the game log on start for all servers that set one …
dgibbs64 Nov 3, 2026
031da93
fix(core): stop download loop on slow connections (#5134)
dgibbs64 Nov 3, 2026
97a46c2
feat(punkbuster): ship the last PunkBuster release for every server t…
dgibbs64 Nov 3, 2026
b402009
fix(punkbuster): start PunkBuster on CoD2 and WaW with glibc 2.41 and…
dgibbs64 Nov 3, 2026
8f1e3ed
fix(ut99): keep config and logs in serverfiles with -nohomedir (#5133)
dgibbs64 Nov 3, 2026
70818f4
fix(deps): fetch distro dependency csv when run as root before instal…
dgibbs64 Nov 3, 2026
98968df
feat(qwserver): install and update from qwserver-build releases (#5149)
dgibbs64 Nov 4, 2026
c5efe90
fix(ahl): run Action Half-Life on ReHLDS to stop the startup segfault…
dgibbs64 Nov 4, 2026
75d3159
fix(won2): restore startup and queries on modern glibc (#5151)
dgibbs64 Nov 4, 2026
3c16604
Release v26.5.0
dgibbs64 Nov 4, 2026
75bf221
Merge remote-tracking branch 'origin/master' into release/v26.5.0
dgibbs64 Nov 4, 2026
50dc4e5
Merge pull request #5152 from GameServerManagers/release/v26.5.0
dgibbs64 Nov 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@ indent_size = 4
[*.py]
indent_style = space
indent_size = 4

# Markdown Files
[*.md]
indent_size = unset
11 changes: 11 additions & 0 deletions .github/linters/.ruff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Store the cache in a temporary location
cache-dir = "/tmp/.ruff_cache"

# Same as Black
line-length = 88

# Oldest Python on supported distros (Ubuntu 20.04)
target-version = "py38"

[lint]
ignore = ["E203"]
24 changes: 11 additions & 13 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
# Description

Please include a summary of the change and which issues are fixed.
<!-- Summarise the change and why it is needed. -->

Fixes #[issue]

Affected servers: <!-- shortnames, e.g. ck, rust, or "all" -->

## Type of change

- [ ] Bug fix (a change which fixes an issue).
- [ ] New feature (a change which adds functionality).
- [ ] New Server (new server added).
- [ ] Refactor (restructures existing code).
- [ ] Chore (CI, workflows, tooling or other maintenance).
- [ ] Comment update (typo, spelling, explanation, examples, etc).

## Testing

Please list the exact validation you performed and the outcome.
<!-- List the exact validation you performed and the outcome. -->

- Commands/tests run:
- Result:
Expand All @@ -30,28 +33,23 @@ Please list the exact validation you performed and the outcome.
- [ ] No breaking changes.
- [ ] Breaking changes included (describe below).

## Documentation impact
## Documentation

<!-- If documentation needs updating, open a PR on the docs repo (preferred) or request an update. -->

- [ ] No documentation update required.
- [ ] User documentation update required.
- [ ] Developer documentation update required.
- [ ] User documentation update required ([LinuxGSM-Docs](https://github.com/GameServerManagers/LinuxGSM-Docs)).
- [ ] Developer documentation update required ([LinuxGSM-Dev-Docs](https://github.com/GameServerManagers/LinuxGSM-Dev-Docs)).

## Checklist

PR will not be merged until all steps are complete.

- [ ] This pull request links to an issue.
- [ ] This pull request links to an issue ("Fixes", or "Related to" for a partial fix).
- [ ] This pull request uses the develop branch as its base.
- [ ] This pull request subject follows the Conventional Commits standard.
- [ ] This code follows the style guidelines of this project.
- [ ] I have performed a self-review of my code.
- [ ] I have provided a detailed enough description of this PR.

## Documentation

If documentation does need updating either update it by creating a PR (preferred) or request a documentation update.

- User docs: <https://github.com/GameServerManagers/LinuxGSM-Docs>
- Dev docs: <https://github.com/GameServerManagers/LinuxGSM-Dev-Docs>

**Thank you for your Pull Request!**
88 changes: 44 additions & 44 deletions .github/scripts/details-check-generate-matrix.sh
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
#!/bin/bash
# Splits the servers to check into shards (one job each) and a list of legacy servers.
# Legacy servers need an older glibc than the hosted runners have, so they run in an ubuntu:20.04 container.
# Writes shards.json (matrix) and legacy.txt (space-separated shortnames).

ref="${LGSM_REF:-${GITHUB_REF#refs/heads/}}"
curl "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${ref}/lgsm/data/serverlist.csv" | grep -v '^[[:blank:]]*$' > serverlist.csv
maxshards="${DETAILS_CHECK_SHARDS:-12}"
legacyservers="bfv bf1942 btl onset"

echo -n "{" > "shortnamearray.json"
echo -n "\"include\":[" >> "shortnamearray.json"
if [ -f lgsm/data/serverlist.csv ]; then
serverlist="lgsm/data/serverlist.csv"
else
curl -fsS "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${ref}/lgsm/data/serverlist.csv" -o serverlist.csv
serverlist="serverlist.csv"
fi

while read -r line; do
shortname=$(echo "$line" | awk -F, '{ print $1 }')
# If TARGETED_SHORTNAMES is set, skip servers not in the list
if [ -n "${TARGETED_SHORTNAMES:-}" ]; then
if ! echo "${TARGETED_SHORTNAMES}" | grep -qw "${shortname}"; then
continue
fi
shortnames=()
legacy=()
while IFS=, read -r shortname _; do
[ -z "${shortname}" ] && continue
if [ -n "${TARGETED_SHORTNAMES:-}" ] && ! echo "${TARGETED_SHORTNAMES}" | grep -qw "${shortname}"; then
continue
fi
export shortname
servername=$(echo "$line" | awk -F, '{ print $2 }')
export servername
gamename=$(echo "$line" | awk -F, '{ print $3 }')
export gamename
distro=$(echo "$line" | awk -F, '{ print $4 }')
export distro
# Legacy servers that require older Ubuntu/Debian versions due to glibc compatibility
case "${shortname}" in
bfv | bf1942)
# Requires Ubuntu <= 22.04 or Debian <= 12 (glibc 2.31 compatible)
runner="ubuntu-22.04"
;;
btl | onset)
# Requires Ubuntu <= 20.04 or Debian <= 11 (glibc 2.31 compatible)
runner="ubuntu-20.04"
;;
*)
runner="ubuntu-latest"
;;
esac
{
echo -n "{"
echo -n "\"shortname\":"
echo -n "\"${shortname}\""
echo -n ",\"runner\":"
echo -n "\"${runner}\""
echo -n "},"
} >> "shortnamearray.json"
done < <(tail -n +2 serverlist.csv)
sed -i '$ s/.$//' "shortnamearray.json"
echo -n "]" >> "shortnamearray.json"
echo -n "}" >> "shortnamearray.json"
rm serverlist.csv
if echo "${legacyservers}" | grep -qw "${shortname}"; then
legacy+=("${shortname}")
else
shortnames+=("${shortname}")
fi
done < <(tail -n +2 "${serverlist}" | grep -v '^[[:blank:]]*$')

count="${#shortnames[@]}"
shards=$((count < maxshards ? count : maxshards))
declare -a shard
for i in "${!shortnames[@]}"; do
shard[i % shards]+="${shortnames[i]} "
done

{
echo -n '{"include":['
for ((i = 0; i < shards; i++)); do
[ "${i}" -gt 0 ] && echo -n ','
echo -n "{\"shard\":\"$((i + 1))/${shards}\",\"shortnames\":\"${shard[i]% }\"}"
done
echo -n ']}'
} > shards.json

echo -n "${legacy[*]}" > legacy.txt
[ "${serverlist}" == "serverlist.csv" ] && rm serverlist.csv

echo "Servers: ${count} in ${shards} shard(s), legacy: ${legacy[*]:-none}"
66 changes: 66 additions & 0 deletions .github/scripts/details-check-run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/bin/bash
# Runs the details check for each shortname given, in one shared LinuxGSM directory.
# Modules, default configs and data come from the checkout, so the code under test is used and nothing is downloaded per server.
# Usage: details-check-run.sh <shortname>...

src="${GITHUB_WORKSPACE:-${PWD}}"
workdir="${DETAILS_CHECK_DIR:-${HOME}/details-check}"
summary="${GITHUB_STEP_SUMMARY:-/dev/null}"
export LGSM_GITHUBBRANCH="${LGSM_REF:?LGSM_REF must be set}"

rm -rf "${workdir}"
mkdir -p "${workdir}/lgsm" "${workdir}/serverfiles"
cp "${src}/linuxgsm.sh" "${workdir}/"
cp -r "${src}/lgsm/modules" "${src}/lgsm/config-default" "${src}/lgsm/data" "${workdir}/lgsm/"
cd "${workdir}" || exit 1

result() {
if [ "${1}" -eq 0 ]; then echo "✅ pass"; else echo "❌ fail"; fi
}

failed=()
{
echo "| Server | Config | Details | Parse game details | Query raw |"
echo "|--------|--------|---------|--------------------|-----------|"
} >> "${summary}"

for shortname in "$@"; do
gameserver="${shortname}server"
echo "::group::${gameserver}"
./linuxgsm.sh "${gameserver}"
./"${gameserver}" developer

servercfg=$(sed -n "/^\<servercfgdefault\>/ { s/.*= *\"\?\([^\"']*\)\"\?/\1/p;q }" "lgsm/config-lgsm/${gameserver}/_default.cfg")
if [ -n "${servercfg}" ]; then
cfgpath="${servercfg}"
[[ "${cfgpath}" == \$\{*\}/* ]] && cfgpath="${cfgpath#*\}/}"
curl -fsS -o "config-${shortname}" "https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/main/${shortname}/${cfgpath}"
config=$?
[ "${config}" -eq 0 ] && cat "config-${shortname}"
configresult=$(result "${config}")
else
echo "This game server has no config file."
config=0
configresult="➖ none"
fi
grep "startparameters" "lgsm/config-default/config-lgsm/${gameserver}/_default.cfg"

./"${gameserver}" details
details=$?
./"${gameserver}" parse-game-details
parse=$?
./"${gameserver}" query-raw
query=$?
echo "::endgroup::"

if [ "${config}" -ne 0 ] || [ "${details}" -ne 0 ] || [ "${parse}" -ne 0 ] || [ "${query}" -ne 0 ]; then
failed+=("${gameserver}")
echo "::error title=${gameserver}::config=${config} details=${details} parse-game-details=${parse} query-raw=${query}"
fi
echo "| ${gameserver} | ${configresult} | $(result "${details}") | $(result "${parse}") | $(result "${query}") |" >> "${summary}"
done

if [ "${#failed[@]}" -gt 0 ]; then
echo -e "\n**Failed:** ${failed[*]}" >> "${summary}"
exit 1
fi
Empty file modified .github/scripts/sync-game-labels.sh
100644 → 100755
Empty file.
2 changes: 1 addition & 1 deletion .github/workflows/action-add-to-project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Add to Project
uses: actions/add-to-project@v1.0.2
uses: actions/add-to-project@v2.0.0
with:
project-url: https://github.com/orgs/GameServerManagers/projects/11
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
Expand Down
27 changes: 0 additions & 27 deletions .github/workflows/action-dependabot-automerge.yml

This file was deleted.

Loading
Loading