Follow-up fixes discovered while validating this branch's auto-tracking change and testing the image build locally:
fix(docker): blender --version was failing inside the built image with libxkbcommon.so.0: cannot open shared object file — libxkbcommon0, libsm6, and libice6 were never installed. Caught by building locally (docker build .), which the push-only publish workflow never exercised.
fix(publish): now that the workflow tracks the newest Godot/Blender instead of one pinned version, most nightly runs build genuinely new multi-GB layers with nothing pruning old ones — the runner's disk fills up over successive runs until a push fails. Added a docker system prune step before build and retry-with-backoff around docker push to also ride out transient registry 500s.
docs: documented how to build the image locally for testing.
Generated by Claude Code with Claude Sonnet 5
Follow-up fixes discovered while validating this branch's auto-tracking change and testing the image build locally:
- **fix(docker)**: `blender --version` was failing inside the built image with `libxkbcommon.so.0: cannot open shared object file` — `libxkbcommon0`, `libsm6`, and `libice6` were never installed. Caught by building locally (`docker build .`), which the push-only publish workflow never exercised.
- **fix(publish)**: now that the workflow tracks the newest Godot/Blender instead of one pinned version, most nightly runs build genuinely new multi-GB layers with nothing pruning old ones — the runner's disk fills up over successive runs until a push fails. Added a `docker system prune` step before build and retry-with-backoff around `docker push` to also ride out transient registry 500s.
- **docs**: documented how to build the image locally for testing.
---
Generated by Claude Code with Claude Sonnet 5
Replace the fixed 4.7.1 Dockerfile/workflow pin with:
- a nightly schedule that resolves the newest stable Godot (4.0+) and
newest stable Blender, and builds+pushes <version> plus a floating
latest tag only when the Godot version actually changed
- a workflow_dispatch free-text version input to (re)build any specific
Godot version on demand, always with newest-at-build-time Blender,
overwriting that tag without touching latest
- scripts/resolve-godot-version.sh and scripts/resolve-blender-url.sh,
with shared parsing logic in scripts/lib.sh and an offline smoke test
in scripts/test-lib.sh
- Blender is now fetched directly from download.blender.org instead of
apt (Ubuntu noble's apt package is stuck on 4.0.2)
- drop the push-to-main trigger; schedule + workflow_dispatch only
Scope is Godot 4.0+ only — .blend import is a Godot 4 feature, so 3.x
builds have no use for the Blender toolchain this image adds.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
blender --version failed with "libxkbcommon.so.0: cannot open shared
object file" — libxkbcommon0, libsm6, and libice6 aren't pulled in by
anything else in the image. Caught via a local docker build (see
README), which the prior push-only workflow never exercised.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Auto-tracking the newest Godot/Blender means most nightly runs now
build genuinely new multi-GB layers instead of hitting cache, and
nothing ever pruned old ones — the runner's disk fills up over
successive runs until a push fails. Prune before building, and retry
docker push a few times to ride out transient registry 500s.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Follow-up fixes discovered while validating this branch's auto-tracking change and testing the image build locally:
blender --versionwas failing inside the built image withlibxkbcommon.so.0: cannot open shared object file—libxkbcommon0,libsm6, andlibice6were never installed. Caught by building locally (docker build .), which the push-only publish workflow never exercised.docker system prunestep before build and retry-with-backoff arounddocker pushto also ride out transient registry 500s.Generated by Claude Code with Claude Sonnet 5