This repo contains scripts and assets for working with Laclede's LAN game servers.
- It maintains a list of all Laclede's LAN game server repos, and can fetch them to a local machine.
- It can build Laclede's LAN game servers that are not built via GitHub actions.
Shared specifications for all active game server repositories live in specs/gamesvr.
Add and maintain game server specifications there, not in an individual repository under repos/gameservers.
Active game server repositories are checked out under repos/gameservers and must follow those specifications.
Open gamesvr.code-workspace in VS Code to work with this project and all repositories under
repos/lacledeslan, repos/alliedmodders, and repos/splewis in one window. Each nested Git repository is
detected independently in the Source Control view, so branches, commits, pulls, and pushes remain separate.
Run ./bin/reindex-all.sh before opening the workspace to fetch any missing repositories. Repositories cloned
later are detected automatically.
Builds Laclede's LAN game server that are not built via GitHub actions.
./build.shDetermines which Docker images will be built. Unless one or more build targets are supplied, all build targets will be chosen.
| Argument | Base Image | Derived Images |
|---|---|---|
--7daystodie |
gamesvr-7daystodie |
n/a |
--blackmesa |
gamesvr-blackmesa |
-freeplay |
--tf2 |
gamesvr-tf2 |
-freeplay |
--tf2classified |
gamesvr-tf2classified |
-freeplay |
Directly controls the building of Docker images
| Argument | Description |
|---|---|
--delta |
Build 'base' images, using delta layers, when possible. Use when registry bandwidth is a concern. |
--delete-built-image |
Deletes every image tag reported by selected repository builds after all dependents have been processed. |
--enable-steamcmd-cache |
Enables SteamCMD download caching to speed up subsequent builds (may introduce ghost files into the images). |
--disable-docker-cache |
Disables the Docker build cache, forcing a fresh build of all layers. |
--progress-plain |
Enables complete, noninteractive Docker build progress for troubleshooting. |
--skip-pull |
Skips pulling the latest base images from the Docker registry. |
--skip-tests |
Skips running any tests defined in the build process. |
--skip-push |
Skips pushing the built Docker images to the registry. |
| Argument | Description |
|---|---|
--fail-fast |
Stops scheduling additional builds after the first repository build failure. |
--skip-base |
Skips building 'base' images, but builds all 'derived' images. |
Download Laclede's LAN game server assets, so that they can be used offline.
./offline.shEach repository operation is emitted as a Markdown ### organization/repository section. The section reports
whether the local directory was created and cloned, was already up to date, or was fast-forwarded. It includes
the upstream branch and revision, together with commit and tracked-file counts or fast-forward change statistics.
- If a local game server repo has uncommitted changes, reindexing stops with an error and does not update that repository.