fix(publish,docker): fix Blender runtime, CI disk/retry, local build docs #1

Merged
haylan merged 4 commits from feat/auto-godot-blender-tracking into main 2026-08-06 20:04:05 +00:00
Owner

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 filelibxkbcommon0, 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
haylan added 4 commits 2026-08-06 20:03:37 +00:00
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>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
haylan merged commit 2071119c0d into main 2026-08-06 20:04:05 +00:00
haylan deleted branch feat/auto-godot-blender-tracking 2026-08-06 20:05:06 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: haylan/godot-ci#1