diff --git a/.gitea/workflows/dependency-audit.yml b/.gitea/workflows/dependency-audit.yml index b550aa4..dc53975 100644 --- a/.gitea/workflows/dependency-audit.yml +++ b/.gitea/workflows/dependency-audit.yml @@ -45,6 +45,16 @@ jobs: node -e "const fs=require('fs'); const pkg=JSON.parse(fs.readFileSync('package.json')); const rel=JSON.parse(fs.readFileSync('package.release.json')); for (const key of ['dependencies','devDependencies','peerDependencies','optionalDependencies','overrides']) if (rel[key]) pkg[key]=rel[key]; fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');" rm -f package-lock.json npm cache clean --force - npm install --prefer-online + for attempt in 1 2 3; do + if npm install --prefer-online; then + break + fi + status=$? + if [ "$attempt" = 3 ]; then + exit "$status" + fi + sleep $((attempt * 10)) + npm cache clean --force + done - name: Run dependency audits run: bash scripts/check-dependency-audits.sh diff --git a/.gitea/workflows/module-matrix.yml b/.gitea/workflows/module-matrix.yml index 949b9ec..033b99d 100644 --- a/.gitea/workflows/module-matrix.yml +++ b/.gitea/workflows/module-matrix.yml @@ -43,6 +43,16 @@ jobs: node -e "const fs=require('fs'); const pkg=JSON.parse(fs.readFileSync('package.json')); const rel=JSON.parse(fs.readFileSync('package.release.json')); for (const key of ['dependencies','devDependencies','peerDependencies','optionalDependencies','overrides']) if (rel[key]) pkg[key]=rel[key]; fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');" rm -f package-lock.json npm cache clean --force - npm install --prefer-online + for attempt in 1 2 3; do + if npm install --prefer-online; then + break + fi + status=$? + if [ "$attempt" = 3 ]; then + exit "$status" + fi + sleep $((attempt * 10)) + npm cache clean --force + done - name: Run module matrix and contract tests run: bash scripts/check-module-matrix.sh diff --git a/.gitea/workflows/release-integration.yml b/.gitea/workflows/release-integration.yml index 7c2eba2..810c0e9 100644 --- a/.gitea/workflows/release-integration.yml +++ b/.gitea/workflows/release-integration.yml @@ -43,6 +43,16 @@ jobs: node -e "const fs=require('fs'); const pkg=JSON.parse(fs.readFileSync('package.json')); const rel=JSON.parse(fs.readFileSync('package.release.json')); for (const key of ['dependencies','devDependencies','peerDependencies','optionalDependencies','overrides']) if (rel[key]) pkg[key]=rel[key]; fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');" rm -f package-lock.json npm cache clean --force - npm install --prefer-online + for attempt in 1 2 3; do + if npm install --prefer-online; then + break + fi + status=$? + if [ "$attempt" = 3 ]; then + exit "$status" + fi + sleep $((attempt * 10)) + npm cache clean --force + done - name: Run release integration checks run: bash scripts/check-release-integration.sh