Files
puzzle-quest/.gitea/workflows/README.md
T
Vaillant Jeremy 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>
2026-05-17 12:36:34 +02:00

2.8 KiB

Gitea Actions CI

Workflow defined in build.yml. Triggered on push / PR to dev and main, or manually via workflow_dispatch.

Jobs

Job Image Role
validate barichello/godot-ci:4.6 godot --headless --import then grep for SCRIPT ERROR / Parse Error. Uploads .godot/ cache.
export-desktop barichello/godot-ci:4.6 Matrix: Windows / Linux / macOS. Reuses the import cache, uploads each binary as artifact.
export-android barichello/godot-ci:4.6 + JDK 17 + Android SDK installed at runtime Provisions keystore, writes editor_settings-4.tres with SDK / JDK paths, exports APK.

Artifacts are kept 14 days, accessible from the Gitea run page.

Prerequisites before the first successful run

  1. Docker image tag — verify barichello/godot-ci:4.6 exists on Docker Hub. Otherwise adjust GODOT_IMAGE (common alternatives: 4.3, 4.4).
  2. macOS preset missing — add it in Godot Editor → Project → Export → Add → macOS, name it exactly macOS (or change the matrix entry). The .zip will be unsigned; on Mac it needs xattr -dr com.apple.quarantine to launch.
  3. Linux/X11Debug preset — Godot-3-era name. Reopen the project in Godot 4 once and re-save the preset (the editor may rename it). Update the matrix preset: field accordingly if it does.
  4. Gitea runner — must support Docker containers (act_runner in docker mode, or host mode with Docker installed). Check act_runner exec access to Docker Hub.
  5. Optional secret ANDROID_KEYSTORE_BASE64base64 -w0 debug.keystore, stored as a Gitea repo secret. Without it, a throwaway keystore is generated per run, so the APK signature changes every build.

Differences from the old .drone.yml

  • No more Drone, no more Butler — build only, artifacts downloadable from the Gitea UI.
  • GDScript validation step before export (didn't exist).
  • .godot/ import cache shared between jobs (faster reruns).
  • Keystore via Gitea secret instead of a public pCloud link.
  • macOS target added (preset still to be created in Godot).
  • master / empty ReleaseVersion pipeline → replaced by triggers on main (release branch per CLAUDE.md).

Future: itch.io deploy via Butler

Not wired. When you want it back, add a deploy-itch job gated on tag push (v*) that downloads the artifacts and runs butler push <dir> dev-crea/ahog:<channel> with BUTLER_API_KEY from secrets. Channels used historically: windows, linux, android, mac.