From 6f50d1a80ae75bf5b0626e56acd3fb1425940a1e Mon Sep 17 00:00:00 2001 From: Dariusz Koryto Date: Wed, 14 Oct 2026 17:59:50 +0200 Subject: [PATCH] ci: retry bun install across remaining workflows (#565) Mirror the retry loop already used in desktop-build.yml for every remaining one-shot 'bun install --frozen-lockfile' step so transient registry or network failures (e.g. a failed mermaid tarball download) no longer fail the whole run. deploy-tools.yml gains shell: bash because its matrix includes windows-latest; sync-edgeever-upstream.yml uses break on success so the following verification commands still run. --- .github/workflows/deploy-demo.yml | 11 ++++++++++- .github/workflows/deploy-personal.yml | 11 ++++++++++- .github/workflows/deploy-site.yml | 11 ++++++++++- .github/workflows/deploy-tools.yml | 12 +++++++++++- .github/workflows/desktop-build.yml | 11 ++++++++++- .github/workflows/extension-build.yml | 11 ++++++++++- .github/workflows/extension-store.yml | 11 ++++++++++- .github/workflows/play-generated-apk-audit.yml | 11 ++++++++++- .github/workflows/sync-edgeever-upstream.yml | 10 +++++++++- 9 files changed, 90 insertions(+), 9 deletions(-) diff --git a/.github/workflows/deploy-demo.yml b/.github/workflows/deploy-demo.yml index 990f3798..2cb78cfb 100644 --- a/.github/workflows/deploy-demo.yml +++ b/.github/workflows/deploy-demo.yml @@ -48,7 +48,16 @@ jobs: uses: oven-sh/setup-bun@v2 - name: Install dependencies - run: bun install --frozen-lockfile + run: | + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + exit 0 + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done - name: Resolve Release metadata env: diff --git a/.github/workflows/deploy-personal.yml b/.github/workflows/deploy-personal.yml index 02423f3f..04e474a6 100644 --- a/.github/workflows/deploy-personal.yml +++ b/.github/workflows/deploy-personal.yml @@ -71,7 +71,16 @@ jobs: uses: oven-sh/setup-bun@v2 - name: Install dependencies - run: bun install --frozen-lockfile + run: | + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + exit 0 + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done - name: Deploy personal Worker env: diff --git a/.github/workflows/deploy-site.yml b/.github/workflows/deploy-site.yml index dab7f88a..131b9d96 100644 --- a/.github/workflows/deploy-site.yml +++ b/.github/workflows/deploy-site.yml @@ -37,7 +37,16 @@ jobs: uses: oven-sh/setup-bun@v2 - name: Install dependencies - run: bun install --frozen-lockfile + run: | + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + exit 0 + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done - name: Build site run: bun run build:site diff --git a/.github/workflows/deploy-tools.yml b/.github/workflows/deploy-tools.yml index 72e35600..1d0514b4 100644 --- a/.github/workflows/deploy-tools.yml +++ b/.github/workflows/deploy-tools.yml @@ -56,7 +56,17 @@ jobs: uses: oven-sh/setup-bun@v2 - name: Install dependencies - run: bun install --frozen-lockfile + shell: bash + run: | + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + exit 0 + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done - name: Launch project-local Wrangler run: bun scripts/run-wrangler.mjs --version diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index b21caccf..f02f489d 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -255,7 +255,16 @@ jobs: echo "CSC_IDENTITY_AUTO_DISCOVERY=true" >> "$GITHUB_ENV" - name: Install dependencies - run: bun install --frozen-lockfile + run: | + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + exit 0 + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done - name: Build Web renderer env: diff --git a/.github/workflows/extension-build.yml b/.github/workflows/extension-build.yml index bbdc9525..630ac0c6 100644 --- a/.github/workflows/extension-build.yml +++ b/.github/workflows/extension-build.yml @@ -54,7 +54,16 @@ jobs: bun-version-file: package.json - name: Install dependencies - run: bun install --frozen-lockfile + run: | + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + exit 0 + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done - name: Test extension manifests run: bun run test:extension diff --git a/.github/workflows/extension-store.yml b/.github/workflows/extension-store.yml index 0196f7a6..87614758 100644 --- a/.github/workflows/extension-store.yml +++ b/.github/workflows/extension-store.yml @@ -62,7 +62,16 @@ jobs: bun-version-file: package.json - name: Install dependencies - run: bun install --frozen-lockfile + run: | + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + exit 0 + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done - name: Write release notes env: diff --git a/.github/workflows/play-generated-apk-audit.yml b/.github/workflows/play-generated-apk-audit.yml index da6abb65..c6f90da5 100644 --- a/.github/workflows/play-generated-apk-audit.yml +++ b/.github/workflows/play-generated-apk-audit.yml @@ -22,7 +22,16 @@ jobs: uses: oven-sh/setup-bun@v2 - name: Install dependencies - run: bun install --frozen-lockfile + run: | + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + exit 0 + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done - name: Inspect generated APK types env: diff --git a/.github/workflows/sync-edgeever-upstream.yml b/.github/workflows/sync-edgeever-upstream.yml index 65b9e1b6..11cba09b 100644 --- a/.github/workflows/sync-edgeever-upstream.yml +++ b/.github/workflows/sync-edgeever-upstream.yml @@ -243,7 +243,15 @@ jobs: if: steps.upstream.outputs.align_mode == 'merge' run: | set -euo pipefail - bun install --frozen-lockfile + for attempt in 1 2 3; do + if bun install --frozen-lockfile; then + break + fi + if [[ "$attempt" = "3" ]]; then + exit 1 + fi + sleep "$((15 * attempt))" + done bun run db:migrate:local bun run test bun run typecheck