From 6ac64eeb8f2271444c7c891872c094b5b584a73f Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Tue, 4 Aug 2026 20:30:09 +0200 Subject: [PATCH] Redirect cargo-leptos's tool cache out of act-runner-bare's StateDirectory wasm-bindgen/wasm-opt binaries cargo-leptos downloads under XDG_CACHE_HOME ended up owned by the kernel's overflow "nobody" uid inside systemd's StateDirectory for this unit - a quirk of that specific path, not anything about our shared-cache setup (CARGO_TARGET_DIR elsewhere is owned correctly). Pointing XDG_CACHE_HOME at our own shared /var/local/leptos-cache sidesteps it; verified with a clean checkout + a from-scratch env matching the workflow's exactly. --- .gitea/workflows/deploy.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index e4a114c..42fb6f1 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -29,6 +29,15 @@ jobs: SCCACHE_DIR: /var/local/sccache SCCACHE_SERVER_PORT: "4228" CARGO_TARGET_DIR: /var/local/cargo-target + # cargo-leptos's own downloaded tools (wasm-bindgen, wasm-opt) cache + # under $XDG_CACHE_HOME - left at its default that resolves inside + # this unit's systemd StateDirectory, files it creates there end up + # owned by the kernel's overflow "nobody" uid instead of the + # runner's own dynamic uid (a StateDirectory quirk, not something + # in our control), so a later run can't execute what an earlier run + # downloaded. Redirecting it to our own known-good shared dir avoids + # that entirely. + XDG_CACHE_HOME: /var/local/leptos-cache steps: - uses: actions/checkout@v4