The first Gitea Actions runs failed at actions/checkout@v4 because
barichello/godot-ci:4.6 ships without Node.js, which the JS-based
checkout action requires. Rather than chase a Godot CI image that
bundles Node, drop the container: blocks entirely: the default
catthehacker/ubuntu:act-latest runner image already has Node /
Python / git / JDK, and Godot is installed per-job from the
official GitHub release.
Pulled the install logic into a local composite action at
.gitea/actions/setup-godot/ to avoid duplicating 15 lines of wget +
unzip across the three Godot-using jobs. Inputs:
- version (default 4.6)
- templates (default false — export jobs flip to true)
Other tweaks:
- export-android now puts $ANDROID_HOME under $GITHUB_WORKSPACE so
no sudo is needed; editor_settings-4.tres interpolates that path.
- export-android writes the keystore under /tmp instead of /root
(catthehacker runners don't run as root).
README updated: jobs table reflects the new "Tooling installed by the
job" column, prerequisites no longer mention the Docker image, and
known-issue #1 is closed out with the dated fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a "Known issues from first runs" section to the workflow
README capturing what broke on 2026-05-17:
- Container jobs (validate, export-*) fail at actions/checkout@v4
with `node: not found` because barichello/godot-ci:4.6 has no Node.
Workflow fix pending.
- The earlier `actions/checkout` URL-prefix problem (Gitea behind
YunoHost at /gitea/) is now resolved server-side by moving Gitea
to the root; the note records this for future reference.
- Default-branch mismatch (Gitea = main, CLAUDE.md says dev).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Lints scripts/, db/, scenes/ via gdtoolkit==4.* on ubuntu-latest
(Python, no Godot needed), in parallel with the validate job.
addons/ (third-party LOD plugin) and developers/ (sandbox) are
left out. Non-blocking for now: the export jobs still only need
validate, so a lint regression won't break builds while the
Godot-3 leftover code is being cleaned up.
gdlintrc bumps max-line-length from 100 to 140 because Godot
$-style node paths and typed signatures routinely push past 100
without that being a real readability problem.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drone server is gone; CI now lives in .gitea/workflows/build.yml.
Three jobs: GDScript validation (godot --headless --import + error
grep), desktop matrix (Windows / Linux / macOS), and Android (JDK 17
+ SDK installed at runtime, keystore from ANDROID_KEYSTORE_BASE64
secret or generated). Build only — Butler / itch.io deploy not wired.
Notes in .gitea/workflows/README.md cover the Godot-4 pre-reqs
(macOS preset to add, Linux/X11Debug likely renamed on first 4.x
save, Docker image tag) and how to plug Butler back in later.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>