Skip to content

Retry test VS Code acquisition and propagate failures - #14752

Draft
Sean McManus (sean-mcmanus) wants to merge 2 commits into
mainfrom
seanmcm/devbox2-wsl/agent63/vscode-acquisition-retries
Draft

Retry test VS Code acquisition and propagate failures#14752
Sean McManus (sean-mcmanus) wants to merge 2 commits into
mainfrom
seanmcm/devbox2-wsl/agent63/vscode-acquisition-retries

Conversation

@sean-mcmanus

Copy link
Copy Markdown
Contributor

Summary

Retry transient test VS Code acquisition failures with bounded backoff, and make terminal installation failures fail the acquisition command instead of surfacing later as missing native binaries. This is an independent follow-up to the failed Linux acquisition job observed during #14751; the retry passed on unchanged source.

This PR was investigated and created by GitHub Copilot (in VS Code). Any message starting with ✨Copilot: was sent by Copilot.

Changes

  • Retry raw transient network failures, including aggregate connection errors and test-electron request timeouts, up to three attempts with 1-second and 2-second backoffs.
  • Preserve the pinned VS Code version, cache location, platform selection, and the library's existing archive retries. Its terminal archive-download error is not retried again.
  • Propagate installation failures through the existing script error handler so the CLI exits nonzero without installing the extension or copying binaries.
  • Add a script-owned regression suite and run it before native-binary acquisition in the reusable CI workflow.
  • Normalize the touched workflow to consistent CRLF line endings, correcting its pre-existing mixed LF/CRLF formatting.

Validation

  • yarn test-vscode-acquisition: 21 tests passed, including actual CLI entry-point tests with mocked HTTPS failures and delays.
  • Targeted ESLint: passed.
  • Workflow YAML, acquisition-step ordering, unchanged parsed YAML after line-ending normalization, and CRLF-aware whitespace checks: passed.
  • Strict script-project typecheck: five pre-existing diagnostics remain, compared with seven on main; no new diagnostics introduced. Full platform integration tests will run in CI.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The bounded retry behavior and failure propagation are narrowly scoped and comprehensively tested.

Pull request overview

Adds bounded retries for transient VS Code acquisition failures and ensures terminal failures exit nonzero.

Changes:

  • Retries transient network failures with exponential backoff.
  • Propagates installation failures to the CLI error handler.
  • Adds acquisition regression tests to CI.
File summaries
File Description
Extension/package.json Registers the acquisition test script.
Extension/.scripts/vscode.ts Implements retries and failure propagation.
Extension/.scripts/vscode.test.mjs Tests retry and CLI failure behavior.
Extension/.scripts/installAndCopyBinaries.ts Removes obsolete undefined-result handling.
.github/workflows/job-compile-and-test.yml Runs acquisition tests before binary acquisition.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Pull Request

Development

Successfully merging this pull request may close these issues.

2 participants