ci: add retry logic and offline-first caching to npm installs
All checks were successful
PR Review Automation / review (pull_request) Successful in 3m49s
Test / frontend-typecheck (pull_request) Successful in 1m43s
Test / frontend-tests (pull_request) Successful in 1m49s
Test / rust-fmt-check (pull_request) Successful in 15m14s
Test / rust-clippy (pull_request) Successful in 16m21s
Test / rust-tests (pull_request) Successful in 16m50s
All checks were successful
PR Review Automation / review (pull_request) Successful in 3m49s
Test / frontend-typecheck (pull_request) Successful in 1m43s
Test / frontend-tests (pull_request) Successful in 1m49s
Test / rust-fmt-check (pull_request) Successful in 15m14s
Test / rust-clippy (pull_request) Successful in 16m21s
Test / rust-tests (pull_request) Successful in 16m50s
Resolves intermittent ECONNRESET failures in CI by adding 3-retry loop with 5s backoff to all npm ci/install steps. Also adds --prefer-offline and --no-audit flags to reduce registry dependency. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
03c4d5b2f1
commit
27bee10792
@ -48,8 +48,17 @@ jobs:
|
||||
pkg-config
|
||||
- name: Install Rust components
|
||||
run: rustup component add rustfmt
|
||||
- name: Install dependencies
|
||||
run: npm install --legacy-peer-deps
|
||||
- name: Install dependencies with retry
|
||||
run: |
|
||||
for i in 1 2 3; do
|
||||
if npm install --legacy-peer-deps --prefer-offline --no-audit; then
|
||||
exit 0
|
||||
fi
|
||||
echo "Attempt $i failed, retrying in 5 seconds..."
|
||||
sleep 5
|
||||
done
|
||||
echo "All retry attempts failed"
|
||||
exit 1
|
||||
- name: Update version from Git
|
||||
run: node scripts/update-version.mjs
|
||||
- run: cargo generate-lockfile --manifest-path src-tauri/Cargo.toml
|
||||
@ -161,7 +170,17 @@ jobs:
|
||||
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-npm-
|
||||
- run: npm ci --legacy-peer-deps
|
||||
- name: Install dependencies with retry
|
||||
run: |
|
||||
for i in 1 2 3; do
|
||||
if npm ci --legacy-peer-deps --prefer-offline --no-audit; then
|
||||
exit 0
|
||||
fi
|
||||
echo "Attempt $i failed, retrying in 5 seconds..."
|
||||
sleep 5
|
||||
done
|
||||
echo "All retry attempts failed"
|
||||
exit 1
|
||||
- run: npx tsc --noEmit
|
||||
|
||||
frontend-tests:
|
||||
@ -195,5 +214,15 @@ jobs:
|
||||
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-npm-
|
||||
- run: npm ci --legacy-peer-deps
|
||||
- name: Install dependencies with retry
|
||||
run: |
|
||||
for i in 1 2 3; do
|
||||
if npm ci --legacy-peer-deps --prefer-offline --no-audit; then
|
||||
exit 0
|
||||
fi
|
||||
echo "Attempt $i failed, retrying in 5 seconds..."
|
||||
sleep 5
|
||||
done
|
||||
echo "All retry attempts failed"
|
||||
exit 1
|
||||
- run: npm run test:run
|
||||
|
||||
Loading…
Reference in New Issue
Block a user