From fbd2ab2cb3cd45eed0745a73b4bdab2685bbe997 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Mon, 2 Nov 2026 09:51:59 +0100 Subject: [PATCH] Disable unreliable Gitea Godot cache steps Gitea cache restores were inconsistent and cache saves timed out or were rejected as reserved by another job. Remove the cache steps and keep direct 4.7.2 downloads; document the evaluation and when to retry. The workflow is otherwise clean (no .github/ci.yml exists). --- .gitea/workflows/build.yml | 45 ++++---------------------------------- CHANGELOG.md | 4 ++-- MEMORY.md | 11 ++++++---- docs/RELEASING.md | 11 +++++----- docs/architecture.md | 2 +- 5 files changed, 20 insertions(+), 53 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index aa63bd1..d18bdbe 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -7,10 +7,6 @@ on: pull_request: workflow_dispatch: -env: - GODOT_VERSION: "4.7.2" - GODOT_BIN: /usr/local/bin/godot - jobs: checks: name: Import + headless tests @@ -21,18 +17,8 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Restore Godot binary cache - uses: actions/cache@v4 - with: - path: /usr/local/bin/godot - key: godot-checks-${{ runner.os }}-${{ env.GODOT_VERSION }}-v2 - - name: Install Godot 4.7.2 run: | - if [ -x /usr/local/bin/godot ]; then - godot --version - exit 0 - fi curl -sL -o /tmp/godot.zip \ https://github.com/godotengine/godot/releases/download/4.7.2-stable/Godot_v4.7.2-stable_linux.x86_64.zip unzip -qo /tmp/godot.zip -d /tmp/godot-bin @@ -71,38 +57,15 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Restore Godot binary cache - uses: actions/cache@v4 - with: - path: /usr/local/bin/godot - key: godot-build-${{ runner.os }}-${{ env.GODOT_VERSION }}-v2 - - - name: Restore export templates cache - uses: actions/cache@v4 - with: - path: ~/.local/share/godot/export_templates/4.7.2.stable - key: godot-templates-${{ runner.os }}-${{ env.GODOT_VERSION }}-v2 - - name: Install Godot 4.7.2 and export templates run: | - if [ ! -x /usr/local/bin/godot ]; then - curl -sL -o /tmp/godot.zip \ - https://github.com/godotengine/godot/releases/download/4.7.2-stable/Godot_v4.7.2-stable_linux.x86_64.zip - unzip -qo /tmp/godot.zip -d /tmp/godot-bin - sudo install /tmp/godot-bin/Godot_v4.7.2-stable_linux.x86_64 /usr/local/bin/godot - fi + curl -sL -o /tmp/godot.zip \ + https://github.com/godotengine/godot/releases/download/4.7.2-stable/Godot_v4.7.2-stable_linux.x86_64.zip + unzip -qo /tmp/godot.zip -d /tmp/godot-bin + sudo install /tmp/godot-bin/Godot_v4.7.2-stable_linux.x86_64 /usr/local/bin/godot godot --version TEMPLATE_DIR="$HOME/.local/share/godot/export_templates/4.7.2.stable" NEEDED="version.txt icudt_godot.dat linux_release.x86_64 windows_release_x86_64.exe macos.zip web_nothreads_release.zip web_dlink_nothreads_release.zip" - missing=0 - for file in $NEEDED; do - [ -f "$TEMPLATE_DIR/$file" ] || missing=1 - done - if [ "$missing" -eq 0 ]; then - echo "export templates restored from cache" - ls "$TEMPLATE_DIR" | head -10 - exit 0 - fi curl -sL -o /tmp/templates.tpz \ https://github.com/godotengine/godot/releases/download/4.7.2-stable/Godot_v4.7.2-stable_export_templates.tpz rm -rf /tmp/tpl && mkdir -p /tmp/tpl diff --git a/CHANGELOG.md b/CHANGELOG.md index 73cfa68..7453999 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,8 @@ Semantic Versioning. - Unified the project, local tooling and CI/release environment on Godot 4.7.2, including matching export templates and project feature metadata. -- Added Gitea Actions cache for the Godot binary and export templates to reduce - repeated download time. +- Evaluated Gitea Actions cache for the Godot binary/templates; disabled it after + cache saves timed out or were rejected, pending a healthy host cache service. - Updated release and setup documentation for the 4.7.2 baseline. ## [0.9.0] — 2026-11-01 diff --git a/MEMORY.md b/MEMORY.md index 3d65807..3580fe3 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -63,7 +63,8 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o Export templates for 4.7.2 are installed under `~/.local/share/godot/export_templates/4.7.2.stable`. Godot 4.7 writes `*.gd.uid` files; they are kept out of this clone's status via - `.git/info/exclude`. CI caches the binary/templates with Gitea Actions cache. + `.git/info/exclude`. CI downloads the binary/templates directly; Gitea + Actions cache is currently unreliable (see CI cache evaluation below). - **Blender invocation (v0.6.0):** `flatpak run org.blender.Blender --background --python /run/media/system/DATA/Documents/06-games/security-game/tools/npc_pipeline.py -- build`. The flatpak cannot read `/tmp`; use absolute repo paths. `assets/models/npc/.gdignore` is @@ -576,9 +577,11 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o - Venue cycling: `V` switches Hollywood Blvd → The Joke Shop → TV Studio and restarts the shift. - Venue door-staff dialogue: `VenueScenario.door_staff_line(context, rng)` and GameManager logging (id/ticket/wand-check, refusal, prohibited-item) — Joke Shop flavor. -- CI cache: `.gitea/workflows/build.yml` caches `/usr/local/bin/godot` and the - 4.7.2 export templates with Gitea Actions cache. `GODOT_SILENCE_ROOT_WARNING=1` - is set on jobs. +- CI cache evaluation: Gitea Actions cache was tested for the Godot binary and + trimmed 4.7.2 templates. Restores were inconsistent and saves timed out in + `CreateCacheEntry` or were rejected as reserved by another job. The cache steps + are disabled until the host cache service is healthy; keep direct downloads. + `GODOT_SILENCE_ROOT_WARNING=1` is set on jobs. Logs live in `.gitea/logs/` after each run. - Visual polish (v0.2.0): phase lighting (GameManager.PHASE_LIGHTING + ProceduralSkyMaterial), street lamps + night mode in WorldBuilder.set_night_mode, marquee Label3D, crosswalk/planters/ diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 182595b..53bb4ad 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -63,11 +63,12 @@ setup, so do not rely on it. > artifacts. If CI publishing fails again, run > `./tools/publish_release.sh ` from a checkout with `~/.git-credentials`. -> **Godot cache:** the workflow uses Gitea Actions cache for the Godot binary and a -> trimmed 4.7.2 export-template set (Linux/Windows/macOS/Web release files only, not -> Android/iOS). The first run still downloads them; subsequent runs restore from cache. -> If the host cache service is unavailable, remove the cache steps and let the install -> steps download fresh copies. +> **Godot cache evaluation:** Gitea Actions cache was tested for the Godot binary and +> trimmed 4.7.2 templates. Restores worked intermittently, but cache saves timed out +> in `CreateCacheEntry` / were rejected as reserved by another job. The cache steps +> were removed because they added restore/save overhead without a reliable hit. +> Revisit when the host's Gitea Actions cache service is healthy; otherwise keep +> downloading the binary/templates directly. > The workflow lives in `.gitea/workflows/` (Gitea's canonical path). The old > `.github/workflows/ci.yml` was removed to avoid double runs on hosts that scan diff --git a/docs/architecture.md b/docs/architecture.md index c3b21b7..8fc5622 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -188,7 +188,7 @@ Future options include external analytics, cloud saves, or replay sharing, but t A continuous-integration pipeline keeps the headless test suite green on every change and publishes tagged releases. -- **Workflow:** `.gitea/workflows/build.yml` runs on pushes, pull requests, tags, and manual dispatches. The `checks` job restores/caches Godot 4.7.2, imports the project, and runs `res://src/test/test_runner.gd`; it fails on a non-zero exit code or any `SCRIPT ERROR` in the output. +- **Workflow:** `.gitea/workflows/build.yml` runs on pushes, pull requests, tags, and manual dispatches. The `checks` job installs Godot 4.7.2, imports the project, and runs `res://src/test/test_runner.gd`; it fails on a non-zero exit code or any `SCRIPT ERROR` in the output. - **Build job:** runs for tags and manual dispatches. It installs export templates, exports Linux/Windows/macOS and the non-threaded Web build, packages the NSIS installer, Linux AppImage and optional Desktop HQ zip, verifies the installer contents, and uploads the artifacts. - **Publish job:** tag builds call `tools/publish_release.sh` to create the Gitea release and upload the standard artifacts plus the optional Desktop HQ zip. The script uses `GITEA_TOKEN` when configured and otherwise reuses the runner's checkout extraheader credentials. - **Hosting:** the repository lives on Gitea (`https://git.allucanget.biz/zwitschi/security-game`). Export templates must match the pinned Godot version; macOS builds are unsigned and need quarantine guidance or notarization for wider distribution.