From a0c24456c737ecbf3a09679cf3b3d1599da20315 Mon Sep 17 00:00:00 2001 From: wtclaude Date: Tue, 11 Aug 2026 23:08:48 -0500 Subject: [PATCH] ci: retry npm registry reads before failing a check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The frozen-manifest job read ETIMEDOUT from the registry installing the client deps, after it had already cloned core at the pin and proved core's own manifest regenerates — a red X that meant nothing about this PR. There are five `npm ci` calls across the three jobs and the runner is shared, so this will recur. npm's own retry, turned up at the workflow level so every install gets it. Co-Authored-By: Claude --- .gitea/workflows/pr-checks.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitea/workflows/pr-checks.yml b/.gitea/workflows/pr-checks.yml index 61aedcb..052c666 100644 --- a/.gitea/workflows/pr-checks.yml +++ b/.gitea/workflows/pr-checks.yml @@ -73,6 +73,15 @@ concurrency: group: pr-checks-${{ github.ref }} cancel-in-progress: true +# npm's own retry, turned up. The shared runner reads ETIMEDOUT from the registry +# often enough to matter, and there are five `npm ci` calls across these jobs — a +# red X that means "the network hiccuped" costs a reviewer more than it costs the +# runner to retry, and teaches everyone to re-run rather than read a failure. +env: + NPM_CONFIG_FETCH_RETRIES: 5 + NPM_CONFIG_FETCH_RETRY_MINTIMEOUT: 20000 + NPM_CONFIG_FETCH_RETRY_MAXTIMEOUT: 120000 + jobs: server-tests: runs-on: ubuntu-latest