feat(docker): switch base from barichello/godot-ci to debian:bookworm-slim
Drop the dependency on barichello/godot-ci as a base image (Ubuntu, ~2.4GB before this repo adds anything, most of it Android SDK/NDK weight this image never uses). Download Godot's editor and export templates directly from its official godot-builds releases instead, the same source barichello's own Dockerfile pulls from. Alpine was the first candidate considered and rejected: official Godot and Blender binaries are glibc-only, and Alpine's musl-native alternatives for both live only on its unpinned edge repo (see wayfinder tickets #4, #5, #6). A glibc-slim distro turned out not to be meaningfully smaller than Ubuntu either (#8) — but dropping barichello's Android-SDK-laden base entirely still nets a real win: local build measured 2343MB total (Godot + export templates + Blender + mingw-w64 + X11 dev libs) vs. barichello's bare base alone at 2460MB before this repo's layers were ever added. publish.yml's barichello-tag gate is replaced with a check against the godot-builds release we now actually depend on. Decided via wayfinder map #2, ticket #7: #7
This commit is contained in:
@@ -9,9 +9,9 @@ on:
|
||||
inputs:
|
||||
godot_version:
|
||||
description: >-
|
||||
Godot version to (re)build, e.g. 4.7.1 — must exist as a
|
||||
barichello/godot-ci tag (https://hub.docker.com/r/barichello/godot-ci/tags).
|
||||
Leave empty to build the newest stable, same as the nightly run.
|
||||
Godot version to (re)build, e.g. 4.7.1 — must exist as a stable release at
|
||||
https://github.com/godotengine/godot-builds/releases. Leave empty to build
|
||||
the newest stable, same as the nightly run.
|
||||
required: false
|
||||
type: string
|
||||
|
||||
@@ -40,12 +40,16 @@ jobs:
|
||||
UPDATE_LATEST=true
|
||||
fi
|
||||
|
||||
if ! docker manifest inspect "barichello/godot-ci:${VERSION}" >/dev/null 2>&1; then
|
||||
# This image no longer depends on barichello/godot-ci as a base — it downloads Godot
|
||||
# directly from godot-builds' own GitHub releases (see Dockerfile), so the gate here
|
||||
# is against *that* release existing, not a third party's Docker tag.
|
||||
RELEASE_URL="https://github.com/godotengine/godot-builds/releases/download/${VERSION}-stable/Godot_v${VERSION}-stable_linux.x86_64.zip"
|
||||
if ! curl -fsSL -o /dev/null -r 0-0 "$RELEASE_URL"; then
|
||||
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||||
echo "::error::No barichello/godot-ci tag for '${VERSION}'. Check https://hub.docker.com/r/barichello/godot-ci/tags"
|
||||
echo "::error::No godot-builds stable release for '${VERSION}'. Check https://github.com/godotengine/godot-builds/releases"
|
||||
exit 1
|
||||
fi
|
||||
echo "::notice::Newest Godot stable is ${VERSION} but barichello/godot-ci has no matching tag yet — skipping, will retry tomorrow."
|
||||
echo "::notice::Newest Godot stable is ${VERSION} but its godot-builds release isn't up yet — skipping, will retry tomorrow."
|
||||
echo "skip=true" >> "$GITHUB_OUTPUT"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user