05:22:59 Failed to save: reserveCache failed: connect ETIMEDOUT (~4.7 min)
Both runners' built-in cache servers listen on the runner container's own Docker network, which job containers can't reach.
What
actions/setup-go: cache: false in all three jobs. Three small modules aren't worth caching.
scripts/runner/config.yaml (game-test runner template): cache.enabled: false, so any cache step skips at once instead of timing out. To take effect on VM 126, copy it to /opt/gitea-game-test-runner/ and docker compose up -d --force-recreate.
No game folders change, so this PR's run only validates.
## Why
`validate` took about 10 minutes, but only about **10 seconds** of that was work. In the last `main` run:
- 05:13:31 start
- 05:18:10 `Failed to restore: getCacheEntry failed: connect ETIMEDOUT 172.20.0.2:39151` (~4.7 min)
- 05:18:11–05:18:19 modules downloaded, tests run, templates validated
- 05:22:59 `Failed to save: reserveCache failed: connect ETIMEDOUT` (~4.7 min)
Both runners' built-in cache servers listen on the runner container's own Docker network, which job containers can't reach.
## What
- `actions/setup-go`: `cache: false` in all three jobs. Three small modules aren't worth caching.
- `scripts/runner/config.yaml` (game-test runner template): `cache.enabled: false`, so any cache step skips at once instead of timing out. **To take effect on VM 126**, copy it to `/opt/gitea-game-test-runner/` and `docker compose up -d --force-recreate`.
No game folders change, so this PR's run only validates.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Validate took ~10 minutes, of which ~10 seconds was work: setup-go's
cache restore and save each waited ~4.7 minutes for a connect timeout,
because the runners' built-in cache server sits on a network job
containers can't reach. Turn off setup-go caching (three small modules
aren't worth it) and the game-test runner's cache server, so any cache
step skips at once.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No TODO/ticket reference accompanies what appears to be a temporary infrastructure workaround; once the cache server becomes reachable again, both the workflow cache: false flags and the runner cache.enabled: false will silently persist and add unnecessary dependency-download time to every CI run.
The identical two-line comment is duplicated verbatim across three setup-go steps in the workflow; if the reasoning or the fix changes, it must be updated in three places (and a fourth in the runner config), increasing drift risk.
The two changes (workflow-level cache: false vs. runner-level cache.enabled: false) address different cache layers, but a short note linking them would help a future reader confirm both are intentional rather than one being a redundant leftover.
>_Automated AI Review_
Here's some quick feedback on your PR:
- No TODO/ticket reference accompanies what appears to be a temporary infrastructure workaround; once the cache server becomes reachable again, both the workflow `cache: false` flags and the runner `cache.enabled: false` will silently persist and add unnecessary dependency-download time to every CI run.
- The identical two-line comment is duplicated verbatim across three `setup-go` steps in the workflow; if the reasoning or the fix changes, it must be updated in three places (and a fourth in the runner config), increasing drift risk.
- The two changes (workflow-level `cache: false` vs. runner-level `cache.enabled: false`) address different cache layers, but a short note linking them would help a future reader confirm both are intentional rather than one being a redundant leftover.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
validatetook about 10 minutes, but only about 10 seconds of that was work. In the lastmainrun:Failed to restore: getCacheEntry failed: connect ETIMEDOUT 172.20.0.2:39151(~4.7 min)Failed to save: reserveCache failed: connect ETIMEDOUT(~4.7 min)Both runners' built-in cache servers listen on the runner container's own Docker network, which job containers can't reach.
What
actions/setup-go:cache: falsein all three jobs. Three small modules aren't worth caching.scripts/runner/config.yaml(game-test runner template):cache.enabled: false, so any cache step skips at once instead of timing out. To take effect on VM 126, copy it to/opt/gitea-game-test-runner/anddocker compose up -d --force-recreate.No game folders change, so this PR's run only validates.
🤖 Generated with Claude Code
Here's some quick feedback on your PR:
LGTM
Here's some quick feedback on your PR:
cache: falseflags and the runnercache.enabled: falsewill silently persist and add unnecessary dependency-download time to every CI run.setup-gosteps in the workflow; if the reasoning or the fix changes, it must be updated in three places (and a fourth in the runner config), increasing drift risk.cache: falsevs. runner-levelcache.enabled: false) address different cache layers, but a short note linking them would help a future reader confirm both are intentional rather than one being a redundant leftover.