Skip to content

chore(ci): fix windows e2e with server pin, upgrade OS for nightlies and add skips, skip vscode tests, fix evergreen warnings - #2774

Merged
nbbeeken merged 10 commits into
mainfrom
ci-fixes
Jul 21, 2026
Merged

chore(ci): fix windows e2e with server pin, upgrade OS for nightlies and add skips, skip vscode tests, fix evergreen warnings#2774
nbbeeken merged 10 commits into
mainfrom
ci-fixes

Conversation

@nbbeeken

@nbbeeken nbbeeken commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator
  • fix all the evergreen warnings: removed unused tasks, and ensured all variants have unique names
  • Skipped vscode testing: MONGOSH-3496, VSCODE-788
  • added a script that will test cached browsers on the host and if they are corrupted it deletes them MONGOSH-3502
  • upgrade linux for node nightlies to ubuntu 26 and migrated them to arm (only hardware available for that linux version)
  • Node.js nightly has reimplemented repl completer to be an async function, using util.promisfy emits a warning when you use it on an async function so basically wrote our own for this one case. We'll be able to clean it up when we upgrade.
  • A number of nightly skips that have been ticketed: MONGOSH-3498 and put in the node 26 epic. This will help us estimate the size of that effort
  • Replaces rimraf with the native nodejs rm method, it has built in retries for windows EBUSY errors
  • Windows server 2019 (or "pre-2022") was fixed by pinning to server 8.0, 8.3 dropped support for vs2019

@nbbeeken nbbeeken added the no-title-validation Skips validation of PR titles (conventional commit adherence + JIRA ticket inclusion) label Jul 20, 2026
@nbbeeken nbbeeken changed the title chore(ci): bump compass-components and update linux for node nightly chore(ci): skip vscode and update linux for node nightly Jul 20, 2026
nbbeeken added 3 commits July 20, 2026 16:56
Run the node-nightly e2e variant on ubuntu2604-arm64-m7g-xlarge and make the
nightly Node download architecture-aware in setup-env.sh.
);
}

export function promisifyCompleter(

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

util.promisify now prints a warning because this method is async as of nodejs/node#64034

@nbbeeken
nbbeeken marked this pull request as ready for review July 21, 2026 14:00
@nbbeeken
nbbeeken requested a review from a team as a code owner July 21, 2026 14:00
@nbbeeken
nbbeeken requested review from Lizhill and Copilot July 21, 2026 14:00
@codeowners-service-app

Copy link
Copy Markdown

Assigned trackstur for team mongosh-developers because Lizhill is out of office.

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.

Pull request overview

This PR adjusts CI and test infrastructure to keep Node.js nightly runs stable (by changing the Linux runner, adding more aggressive teardown behavior, and skipping known-broken assertions/tests), while also reducing orphan Evergreen task generation and improving Puppeteer cache resilience.

Changes:

  • Skip/force-kill problematic e2e shell teardown paths on Node.js nightly to avoid suite-wide hangs.
  • Improve CI reliability: switch the Node nightly Linux runner/arch handling, disable the VSCode task temporarily, and avoid generating orphan Evergreen tasks.
  • Replace rimraf usage in e2e test helpers with fs.rm() retries and add a pre-install Puppeteer cache hygiene step.

Reviewed changes

Copilot reviewed 16 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/e2e-tests/test/test-shell.ts Force-kill leftover shells and skip “no open shells” assertion on Node nightly.
packages/e2e-tests/test/test-shell-context.ts Ensure teardown can complete on Node nightly by escalating to SIGKILL.
packages/e2e-tests/test/repl-helpers.ts Use fs.rm() with retries for more reliable tmpdir cleanup on Windows.
packages/e2e-tests/test/e2e.spec.ts Skip termination/interrupt-dependent tests on Node nightly.
packages/e2e-tests/test/e2e-tls.spec.ts Skip TLS contexts whose cleanup relies on exit/termination on Node nightly.
packages/e2e-tests/test/e2e-snippet.spec.ts Skip a snippet test that depends on correct shell termination on Node nightly.
packages/e2e-tests/test/e2e-direct.spec.ts Skip context whose cleanup relies on exit on Node nightly.
packages/e2e-tests/package.json Remove rimraf and related types from e2e-tests dependencies.
packages/cli-repl/src/node-repl-fix-completer-side-effects.ts Add a custom promisifyCompleter() to support callback- and promise-style REPL completers.
packages/cli-repl/src/mongosh-repl.ts Switch REPL completer wrapping to promisifyCompleter().
package-lock.json Lockfile updates reflecting removal of rimraf dependencies.
.evergreen/setup-env.sh Download the correct Node nightly tarball for x64 vs arm64 Linux hosts.
.evergreen/purge-incomplete-puppeteer-cache.js New best-effort script to purge broken Puppeteer browser cache entries.
.evergreen/install-npm-deps.sh Invoke Puppeteer cache purge step when downloads are enabled.
.evergreen/evergreen.yml.in Template changes: disable VSCode task, avoid emitting orphan tasks, and update node-nightly variant.
.evergreen/build-variants/e2e-tests-build-variants.js Variant tweaks (naming and Windows server pinning for older Windows hosts).
.evergreen.yml Regenerated Evergreen config reflecting template changes (disabled VSCode, variant updates, task pruning).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/cli-repl/src/node-repl-fix-completer-side-effects.ts
Comment thread .evergreen/purge-incomplete-puppeteer-cache.js Outdated
@nbbeeken
nbbeeken requested review from alenakhineika and removed request for Lizhill and trackstur July 21, 2026 14:48
@nbbeeken nbbeeken changed the title chore(ci): skip vscode and update linux for node nightly chore(ci): fix windows e2e with server pin, upgrade OS for nightlies and add skips, skip vscode tests, fix evergreen warnings Jul 21, 2026

context('after rs.initiate()', function () {
// TODO(MONGOSH-3498): after() cleanup uses exit which hangs on Node nightly
(process.version.includes('-nightly')

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We do such nightly skips quite a number of times, maybe we can introduce a hook, something like skipOnNightly. We have similar hooks in packages/testing/src/integration-testing-hooks.ts

@nbbeeken
nbbeeken merged commit 0296440 into main Jul 21, 2026
25 of 26 checks passed
@nbbeeken
nbbeeken deleted the ci-fixes branch July 21, 2026 19:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-title-validation Skips validation of PR titles (conventional commit adherence + JIRA ticket inclusion)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants