Skip to content

Retry bun install in CI - #91

Merged
esthor merged 1 commit into
mainfrom
esthor/retry-bun-install
Oct 5, 2026
Merged

esthor merged 1 commit into
mainfrom
esthor/retry-bun-install

Conversation

@esthor

@esthor esthor commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

preview: ready coderabbit: approved findings: none checks: passing merge: ready

Preview · Change Stack · Checks · Files: +48 −20 in 11 files

bun sometimes fails to extract a large package tarball on GitHub's runners (error: Fail extracting tarball for "next"). That failed the Lint job twice today, once on main after #83 and once on #72, and both times a rerun passed.

  • Every bun install step now runs .github/scripts/bun-install.sh, which retries twice with a short backoff and emits a warning annotation on each retry, so a flaky run stays visible. The lockfile is frozen, so a retry can only produce the same install.
  • The app workflow installed without --frozen-lockfile; it now uses it like every other workflow.
  • Workflows with path filters also run when the script changes.

bun sometimes fails to extract a large tarball on runners ("Fail
extracting tarball for next"), which failed Lint twice on main and on a
PR. Every install now goes through .github/scripts/bun-install.sh, which
retries twice with a short backoff; the lockfile is frozen, so a retry can
only produce the same install. The app workflow now installs with
--frozen-lockfile like the others.
@coderabbitai

coderabbitai Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: allthingsweb-dev/allthingsweb/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 1f7e6431-4a9e-4776-aaf7-3e905fd392ef
📥 Commits

Reviewing files that changed from the base of the PR and between cacbcb5 and 5270b4e.

📒 Files selected for processing (11)
  • .github/scripts/bun-install.sh
  • .github/workflows/app.yaml
  • .github/workflows/brand.yaml
  • .github/workflows/cli-release.yaml
  • .github/workflows/cli.yaml
  • .github/workflows/core.yaml
  • .github/workflows/deploy.yaml
  • .github/workflows/infra-ci.yaml
  • .github/workflows/lint.yaml
  • .github/workflows/pr-header-ci.yaml
  • .github/workflows/web.yaml

Limit details: You’ve used all 2 included reviews currently available. Your 73 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (9)
  • GitHub Check: PR header
  • GitHub Check: 🧱 Core
  • GitHub Check: 🌐 Web
  • GitHub Check: 🧹 Lint
  • GitHub Check: 🏗️ Infra
  • GitHub Check: 🧪 Tests
  • GitHub Check: 🧪 CLI
  • GitHub Check: 🎨 Tokens meet their contrast targets
  • GitHub Check: 🚀 Deploy
🧰 Additional context used
🪛 zizmor (1.30.1)
.github/workflows/infra-ci.yaml

[warning] 3-17: insufficient job-level concurrency limits (concurrency-limits): workflow is missing concurrency setting

(concurrency-limits)

.github/workflows/cli.yaml

[warning] 3-21: insufficient job-level concurrency limits (concurrency-limits): workflow is missing concurrency setting

(concurrency-limits)

🔇 Additional comments (11)
.github/scripts/bun-install.sh (1)

6-6: LGTM!

Also applies to: 8-18

.github/workflows/app.yaml (1)

27-27: LGTM!

.github/workflows/brand.yaml (1)

12-12: LGTM!

Also applies to: 20-20, 46-46

.github/workflows/cli-release.yaml (1)

35-35: LGTM!

.github/workflows/cli.yaml (1)

12-12: LGTM!

Also applies to: 21-21, 44-44, 48-48

.github/workflows/core.yaml (1)

15-15: LGTM!

Also applies to: 27-27, 70-70, 76-76

.github/workflows/deploy.yaml (1)

46-47: LGTM!

Also applies to: 86-87

.github/workflows/infra-ci.yaml (1)

10-10: LGTM!

Also applies to: 17-17, 39-39

.github/workflows/lint.yaml (1)

33-33: LGTM!

Also applies to: 39-39, 43-43, 47-47, 51-51

.github/workflows/pr-header-ci.yaml (1)

35-35: LGTM!

.github/workflows/web.yaml (1)

19-19: LGTM!

Also applies to: 35-35, 76-76, 79-79


📝 Walkthrough

Walkthrough

A shared Bash script retries frozen-lockfile Bun installs up to three times. GitHub Actions workflows use the script for dependency installation, and several workflows trigger when the script changes.

Changes

Bun dependency installation

Layer / File(s) Summary
Install retry behavior
.github/scripts/bun-install.sh
The script runs bun install --frozen-lockfile up to three times. It waits 5 seconds after the first failure and 10 seconds after the second, then exits with an error after a third failure.
Workflow adoption
.github/workflows/*.yaml
Dependency-install steps call the shared script from their configured working directories. The brand, cli, core, infra-ci, and web workflows include the script in push and pull-request path filters.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant Workflow as GitHub Actions job
  participant Script as bun-install.sh
  participant Bun as bun install
  Workflow->>Script: Run shared install script
  loop Up to three attempts
    Script->>Bun: Run frozen-lockfile install
    Bun-->>Script: Return install status
  end
  Script-->>Workflow: Exit with success or failure status
Loading

Merge Risk: ⚪ Minimal · up to 5270b

The shared installer is wired into the reviewed CI workflows, including their subdirectory install steps. No actionable merge-blocking regression is evident.

Architecture Summary

Architecture risk: 🔵 Low · up to 5270b

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .github/scripts/bun-install.sh: Adds a Bash script that runs a frozen-lockfile install up to three times, exits 0 on success, waits 5 then 10 seconds between failed attempts with warnings, and exits 1 with an error after the final failure.
  • observed — Modified behavior in .github/workflows/app.yaml: The dependency-install step now invokes the workspace install script instead of bun install.
  • observed — Modified behavior in .github/workflows/brand.yaml: The push and pull-request path filters now include .github/scripts/bun-install.sh.
  • observed — Modified behavior in .github/workflows/brand.yaml: The dependency-install step now runs .github/scripts/bun-install.sh instead of bun install --frozen-lockfile.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding retries for Bun installs in CI.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
✨ Simplify code
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Usage-based review receipt

Note

This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.


Comment @coderabbitai help to get the list of available commands.

@esthor
esthor merged commit 5038447 into main Oct 5, 2026
19 checks passed
@esthor
esthor deleted the esthor/retry-bun-install branch October 5, 2026 00:44

This branch was successfully deployed

1 active deployment
preview — 5270b4e2 Deployed Oct 5, 2026 by esthor via 🚀 Deploy #17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant