🔊 Log tool-cache state in the CI build job
CI / release-gate (push) Successful in 2s
CI / build (push) Successful in 40s
CI / publish (push) Skipped
CI / maintain (push) Failing after 42s

The custom image provably carries /opt/hostedtoolcache/node/26.8.2/x64/bin/node
(ls inside the image confirms the layout, modes and the 150 MB binary), yet
setup-node still downloads. So the miss is runtime-only: either the runner is
not running that image or something shadows the path inside the job container.
This step prints mounts, the tool-cache listing, a direct node -v from the
baked path and the RUNNER_* env, then setup-node runs unchanged.

Temporary: remove once the cause is known.
This commit is contained in:
tmu committed 2026-09-14 15:55:52 +00:00
1 parent 1dfb979ebb
commit f0b28c81c0
1 file changed
+16
+16
View File
@@ -63,6 +63,22 @@ jobs:
- /data/gitea-pages:/data/gitea-pages - /data/gitea-pages:/data/gitea-pages
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
# TEMPORARY (remove once understood): the image provably carries
# the tool-cache entry (verified with `docker run --rm <image> ls
# /opt/hostedtoolcache/node/26.8.2/x64/bin`), yet setup-node still
# downloads. Print what the job container actually sees at
# runtime, mounts first — a mount over /opt/hostedtoolcache would
# hide the baked directory from the probe.
- name: Tool cache diagnostics
run: |
id
grep -E 'hostedtoolcache|workspace|overlay' /proc/mounts || true
ls -la /opt/hostedtoolcache || true
ls -la /opt/hostedtoolcache/node || true
ls -la "/opt/hostedtoolcache/node/$(tr -d '[:space:]' < .node-version)/x64/bin" || true
"/opt/hostedtoolcache/node/$(tr -d '[:space:]' < .node-version)/x64/bin/node" -v || true
env | grep -iE 'RUNNER|TOOL|CACHE' || true
head -2 /etc/os-release
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version-file: .node-version node-version-file: .node-version