Adds Dockerfile and Utility Scripts (#31446)

* Adds Dockerfile and Utility Scripts

* Remove RUSTG_VERSION from _build_dependencies.sh

* Moved documentation to references, added link to mkdocs.yml

* Update references, finish documentation, fix typos

* Fixed small error in docs and scripts

* Add CI action to build and publish game server images

* Bump CI action to compatible Ubuntu runner

* Fix up the base image for NanoMap rendering

* Remove commented out base for nanomap-build stage

* Removed default values from Dockerfile build arguments

Sanitized default arguments in Dockerfile
Updated CI workflow to use _build_dependencies.sh to build the Docker image
Added documentation on using --build-arg flags with the docker build command

* Modify caching for Docker builds in CI

* Add missing files to pacify Nanomap Renderer
This commit is contained in:
Patrick Meade
2026-04-11 22:13:20 +00:00
committed by GitHub
parent 89e8381f0d
commit 677e13353f
16 changed files with 1484 additions and 10 deletions
+61
View File
@@ -101,6 +101,67 @@ jobs:
tools/ci/generate_maplist.sh
DreamMaker -DMULTIINSTANCE -DCIMAP -DPARADISE_PRODUCTION_HARDWARE paradise.dme
docker_build:
name: Build (Docker)
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v6
- name: Load Build Dependencies
id: deps
shell: bash
run: |
set -euo pipefail
source ./_build_dependencies.sh
# export as step outputs
{
echo "NODE_VERSION=$NODE_VERSION"
echo "RUST_VERSION=$RUST_VERSION"
echo "STABLE_BYOND_MAJOR=$STABLE_BYOND_MAJOR"
echo "STABLE_BYOND_MINOR=$STABLE_BYOND_MINOR"
# metadata for provenance
echo "VCS_REF=${GITHUB_SHA}"
echo "BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
} >> "$GITHUB_OUTPUT"
- name: Generate Docker Metadata
id: docker_meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/paradisess13/paradise
tags: |
# branch event
type=ref,event=branch
# pull request event
type=ref,event=pr
# full length sha
type=sha,format=long
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: ${{ github.event_name != 'pull_request' }}
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Push Docker Image
uses: docker/build-push-action@v6
with:
context: .
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
push: ${{ github.event_name != 'pull_request' }}
build-args: |
NODE_VERSION=${{ steps.deps.outputs.NODE_VERSION }}
RUST_VERSION=${{ steps.deps.outputs.RUST_VERSION }}
STABLE_BYOND_MAJOR=${{ steps.deps.outputs.STABLE_BYOND_MAJOR }}
STABLE_BYOND_MINOR=${{ steps.deps.outputs.STABLE_BYOND_MINOR }}
VCS_REF=${{ steps.deps.outputs.VCS_REF }}
BUILD_DATE=${{ steps.deps.outputs.BUILD_DATE }}
cache-from: type=gha
cache-to: type=gha,mode=max
station_mapload_tests:
name: Station Tests
runs-on: ubuntu-22.04