410c135870
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>
2.8 KiB
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
- Docker image tag — verify
barichello/godot-ci:4.6exists on Docker Hub. Otherwise adjustGODOT_IMAGE(common alternatives:4.3,4.4). - macOS preset missing — add it in Godot Editor → Project → Export →
Add → macOS, name it exactly
macOS(or change the matrix entry). The.zipwill be unsigned; on Mac it needsxattr -dr com.apple.quarantineto launch. Linux/X11Debugpreset — Godot-3-era name. Reopen the project in Godot 4 once and re-save the preset (the editor may rename it). Update the matrixpreset:field accordingly if it does.- Gitea runner — must support Docker containers (
act_runnerindockermode, orhostmode with Docker installed). Checkact_runner execaccess to Docker Hub. - Optional secret
ANDROID_KEYSTORE_BASE64—base64 -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/ emptyReleaseVersionpipeline → replaced by triggers onmain(release branch perCLAUDE.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.