forked from LiamAEdwards/SS14-Docker-Linux-Server
Skip redundant Docker image builds
This commit is contained in:
40
README.md
40
README.md
@@ -35,7 +35,7 @@ This project is for those who prefer containerized solutions. It's based on the
|
||||
--build-arg SOURCE_REPO=https://git.wylab.me/wylab/wylab-station-14.git \
|
||||
--build-arg SOURCE_REF=master \
|
||||
--build-arg TARGET_PLATFORM=linux-x64 \
|
||||
-t wylab-ss14-server .
|
||||
-t git.wylab.me/wylab/WS14-Docker-Linux-Server:local .
|
||||
```
|
||||
|
||||
- `SOURCE_REPO` – Git URL of the content repo to compile (defaults to the wylab fork).
|
||||
@@ -54,7 +54,7 @@ docker run -d \
|
||||
-p 5000:5000/udp \
|
||||
-v /path/on/host:/ss14 \
|
||||
--name wylab-ss14 \
|
||||
wylab-ss14-server
|
||||
git.wylab.me/wylab/WS14-Docker-Linux-Server:latest
|
||||
```
|
||||
|
||||
On first start the container copies `/ss14-default` into your mounted volume (if empty) so you can edit configs or upload new builds persistently.
|
||||
@@ -66,8 +66,7 @@ version: '3.9'
|
||||
|
||||
services:
|
||||
ss14-server:
|
||||
image: wylab-ss14-server
|
||||
build: .
|
||||
image: git.wylab.me/wylab/WS14-Docker-Linux-Server:latest
|
||||
ports:
|
||||
- "1212:1212/tcp"
|
||||
- "1212:1212/udp"
|
||||
@@ -78,4 +77,37 @@ services:
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
### CI/CD
|
||||
|
||||
Two workflows keep this image up to date:
|
||||
|
||||
1. **`wylab-station-14/.github/workflows/publish.yml`**
|
||||
- Triggered on pushes to `master`, manual dispatch, or nightly cron.
|
||||
- Checks `https://cdn.wylab.me/fork/wylab/manifest` first; if the current commit already exists on the CDN it exits early.
|
||||
- Uses `actions/cache` to persist `~/.nuget/packages` and `RobustToolbox/bin`, so repeated builds reuse restored packages/engine binaries when the inputs haven’t changed.
|
||||
- Otherwise builds the server/client packages via `Content.Packaging`, uploads them via `Tools/publish_multi_request.py`, and fires a `repository_dispatch` event (`event_type: ss14-package-ready`) to this repo.
|
||||
|
||||
Required secrets in the wylab-station-14 repo:
|
||||
`PUBLISH_TOKEN`, `DOCKER_TRIGGER_TOKEN`, and (if used) `SECRETS_PRIVATE_KEY`.
|
||||
To send the dispatch, add `DOCKER_TRIGGER_TOKEN` (a PAT with repo access).
|
||||
|
||||
2. **`WS14-Docker-Linux-Server/.github/workflows/main.yml`**
|
||||
- Triggered on pushes here, manual dispatch, or the `ss14-package-ready` event.
|
||||
- Resolves the target wylab commit (uses the payload commit if provided).
|
||||
- Logs into `git.wylab.me` and runs `docker manifest inspect` before building; if an image tagged with that commit already exists it skips the build.
|
||||
- Otherwise builds the Docker image with `SOURCE_REF=<commit>` and pushes:
|
||||
- `git.wylab.me/wylab/WS14-Docker-Linux-Server:latest`
|
||||
- `git.wylab.me/wylab/WS14-Docker-Linux-Server:<docker repo commit>`
|
||||
- `git.wylab.me/wylab/WS14-Docker-Linux-Server:<wylab commit>`
|
||||
|
||||
Required secrets here: `REGISTRY_USERNAME` / `REGISTRY_PASSWORD` (credentials for `git.wylab.me`).
|
||||
|
||||
After the build finishes, Unraid (or any host) can pull:
|
||||
|
||||
```
|
||||
git.wylab.me/wylab/WS14-Docker-Linux-Server:latest
|
||||
```
|
||||
|
||||
Use that string in Unraid’s “Repository” field and map `/ss14` to persistent storage.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user