diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 0e15d4a..abc878c 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -63,24 +63,13 @@ jobs: - /data/gitea-pages:/data/gitea-pages steps: - uses: actions/checkout@v4 - # TEMPORARY (remove once understood): the image provably carries - # the tool-cache entry (verified with `docker run --rm 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 + # Fail fast when the job container is not the baked image: a stale + # tag on the runner (`forcePull=false` in its pull log) silently + # reintroduces the per-job download. Mirrors the publish job's + # NPM_TOKEN assert — cheap, and it names the invariant. + - name: Assert the baked tool cache is present 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)/" || true - test -f "/opt/hostedtoolcache/node/$(tr -d '[:space:]' < .node-version)/x64.complete" && echo MARKER-PRESENT || echo MARKER-MISSING - 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 + test -f "/opt/hostedtoolcache/node/$(tr -d '[:space:]' < .node-version)/x64.complete" - uses: actions/setup-node@v4 with: node-version-file: .node-version