main
9 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
4f9fa60fa0 |
ci(android): explicit apksigner step after Godot export
Build Puzzle Quest / Lint GDScript (push) Successful in 29s
Build Puzzle Quest / Validate GDScript (push) Successful in 35s
Build Puzzle Quest / Validate GDScript (pull_request) Successful in 39s
Build Puzzle Quest / Lint GDScript (pull_request) Successful in 23s
Build Puzzle Quest / Export Linux (push) Successful in 6m32s
Build Puzzle Quest / Export Windows (push) Successful in 6m44s
Build Puzzle Quest / Export Android (push) Successful in 7m41s
Build Puzzle Quest / Export Windows (pull_request) Successful in 5m30s
Build Puzzle Quest / Export Linux (pull_request) Successful in 6m10s
Build Puzzle Quest / Export Android (pull_request) Successful in 6m48s
Godot 4.6 produces an unsigned APK in headless mode on this runner — verified by apksigner: "DOES NOT VERIFY, Missing META-INF/MANIFEST.MF". The internal sign step seems to bail silently (likely because the apksigner subprocess can't locate java without inheriting JAVA_HOME). The export step still reports success. Sign the APK ourselves after the export with the same debug keystore the workflow provisions. Idempotent if Godot ever starts signing again; mandatory until then. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
46ab28f76f |
fix(android): enable ETC2/ASTC import + use versioned editor settings
Build Puzzle Quest / Validate GDScript (push) Successful in 25s
Build Puzzle Quest / Lint GDScript (push) Successful in 26s
Build Puzzle Quest / Lint GDScript (pull_request) Successful in 40s
Build Puzzle Quest / Validate GDScript (pull_request) Successful in 48s
Build Puzzle Quest / Export Linux (push) Successful in 6m18s
Build Puzzle Quest / Export Windows (push) Successful in 5m43s
Build Puzzle Quest / Export Android (push) Successful in 8m44s
Build Puzzle Quest / Export Linux (pull_request) Successful in 7m0s
Build Puzzle Quest / Export Windows (pull_request) Successful in 6m58s
Build Puzzle Quest / Export Android (pull_request) Successful in 5m34s
Two fixes that finally land the Android export. Verified locally
with godot 4.6.2-arch + downloaded 4.6 templates + Android SDK.
- project.godot: add
rendering/textures/vram_compression/import_etc2_astc=true.
Without it Godot refuses the Android export with "La plateforme
cible nécessite une compression de texture « ETC2/ASTC »". In
headless mode this surfaces as an *empty* configuration-errors
block, which is what kept us stuck in CI.
- workflow: write Godot editor settings to
editor_settings-${GODOT_VERSION}.tres (i.e. -4.6.tres on 4.6),
not -4.tres. Godot 4.5+ uses a minor-version-suffixed settings
file; the major-only name is ignored by 4.6, so our injected
android_sdk_path / java_sdk_path / debug_keystore never reached
the export plugin.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|
|
fbc2b9247a |
ci: comment macOS, empty Windows icon path, fix Android keystore preset
Build Puzzle Quest / Validate GDScript (push) Successful in 43s
Build Puzzle Quest / Lint GDScript (push) Successful in 32s
Build Puzzle Quest / Export Windows (pull_request) Has been skipped
Build Puzzle Quest / Export Linux (push) Failing after 0s
Build Puzzle Quest / Export Windows (push) Failing after 1s
Build Puzzle Quest / Export Android (push) Failing after 0s
Build Puzzle Quest / Validate GDScript (pull_request) Successful in 25s
Build Puzzle Quest / Lint GDScript (pull_request) Successful in 26s
Build Puzzle Quest / Export Linux (pull_request) Successful in 4m9s
Build Puzzle Quest / Export Android (pull_request) Failing after 5m2s
Three follow-ups from run #12: - export-desktop: comment out the macOS matrix entry. The preset is still missing in export_presets.cfg; the entry can be uncommented once the macOS preset is added in the Godot editor. - export Windows: `application/icon` referenced res://releases/windows/project.ico, which has never been in the repo (releases/windows/ holds only .keep). Godot rejected the export with "Invalid icon path". Cleared the field in both WindowsDebug and WindowsTesting presets — Godot falls back to its built-in icon. - export-android: Godot validation requires all three of keystore/debug{,_user,_password} to be set together (or all empty). The keystore step only patched keystore/debug and left the other two empty, triggering "Either Debug Keystore, Debug User AND Debug Password must be configured OR none of them". Patch all three now. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
4e159b1065 |
ci: fix lint venv, drop artifact cache, fix Android sdkmanager pipe
Build Puzzle Quest / Lint GDScript (push) Successful in 33s
Build Puzzle Quest / Validate GDScript (pull_request) Successful in 33s
Build Puzzle Quest / Validate GDScript (push) Successful in 42s
Build Puzzle Quest / Lint GDScript (pull_request) Successful in 25s
Build Puzzle Quest / Export macOS (pull_request) Failing after 4m55s
Build Puzzle Quest / Export Linux (pull_request) Successful in 7m3s
Build Puzzle Quest / Export Windows (pull_request) Failing after 6m53s
Build Puzzle Quest / Export Android (pull_request) Failing after 6m16s
Build Puzzle Quest / Export macOS (push) Failing after 6m27s
Build Puzzle Quest / Export Linux (push) Successful in 6m44s
Build Puzzle Quest / Export Windows (push) Failing after 4m48s
Build Puzzle Quest / Export Android (push) Failing after 4m23s
Three follow-up fixes from the first non-container run (#10): - lint: Ubuntu 24.04 / Python 3.12 enforces PEP 668, so `pip install --user` exits with externally-managed-environment. Install gdtoolkit into a throwaway venv at /tmp/gdlint-venv instead. - exports: drop the .godot/ artifact cache shared between `validate` and the export jobs. Gitea's artifact service returns 404 on actions/download-artifact@v3 (v3 protocol incomplete on this server). Each export job now runs its own `godot --headless --import` before exporting — costs ~30s but avoids the failing cross-job artifact dependency. - export-android: `yes | sdkmanager --licenses` returned 141 (SIGPIPE) under `set -o pipefail` because sdkmanager closes stdin after accepting all licenses while `yes` keeps writing. Feed a finite `printf 'y\n%.0s' {1..50}` instead. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
db2460b9ee |
ci: drop container: for Godot jobs, install via composite action
Build Puzzle Quest / Lint GDScript (push) Failing after 15s
Build Puzzle Quest / Lint GDScript (pull_request) Failing after 16s
Build Puzzle Quest / Validate GDScript (push) Successful in 47s
Build Puzzle Quest / Validate GDScript (pull_request) Successful in 50s
Build Puzzle Quest / Export Linux (push) Failing after 6m5s
Build Puzzle Quest / Export macOS (push) Failing after 7m5s
Build Puzzle Quest / Export Windows (push) Failing after 7m14s
Build Puzzle Quest / Export Android (push) Failing after 5m45s
Build Puzzle Quest / Export Linux (pull_request) Failing after 7m10s
Build Puzzle Quest / Export macOS (pull_request) Failing after 7m24s
Build Puzzle Quest / Export Windows (pull_request) Failing after 4m7s
Build Puzzle Quest / Export Android (pull_request) Failing after 3m3s
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> |
||
|
|
734b5931e9 |
docs(ci): record first-run failures + URL prefix fix
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> |
||
|
|
2d8ca9dfbb |
ci: trigger workflow on feature/godot-migration too
Build Puzzle Quest / Lint GDScript (push) Failing after 28s
Build Puzzle Quest / Export Linux (push) Has been cancelled
Build Puzzle Quest / Export macOS (push) Has been cancelled
Build Puzzle Quest / Export Windows (push) Has been cancelled
Build Puzzle Quest / Export Android (push) Has been cancelled
Build Puzzle Quest / Validate GDScript (push) Has been cancelled
Build Puzzle Quest / Lint GDScript (pull_request) Failing after 21s
Build Puzzle Quest / Export macOS (pull_request) Has been skipped
Build Puzzle Quest / Export Windows (pull_request) Has been skipped
Build Puzzle Quest / Validate GDScript (pull_request) Failing after 4m14s
Build Puzzle Quest / Export Linux (pull_request) Has been skipped
Build Puzzle Quest / Export Android (pull_request) Has been skipped
Temporary addition so the workflow can run before the branch is merged into dev. Remove this branch from the push: list once dev has the workflow. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
e883d662f2 |
Add gdlint job + gdlintrc to Gitea CI
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> |
||
|
|
410c135870 |
Replace Drone CI with Gitea Actions workflow
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> |