Conversation
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( |
There was a problem hiding this comment.
util.promisify now prints a warning because this method is async as of nodejs/node#64034
…tests for Node.js nightly builds
|
Assigned |
There was a problem hiding this comment.
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
rimrafusage in e2e test helpers withfs.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.
|
|
||
| context('after rs.initiate()', function () { | ||
| // TODO(MONGOSH-3498): after() cleanup uses exit which hangs on Node nightly | ||
| (process.version.includes('-nightly') |
There was a problem hiding this comment.
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
Uh oh!
There was an error while loading. Please reload this page.