Skip to content

[ci] Update 'latest' version of node to v24. NFC #24449

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ commands:
description: "install latest version of node"
steps:
- install-node-version:
node_version: "19.0.0"
node_version: "24.1.0"
install-node-canary:
description: "install canary version of node"
steps:
Expand Down Expand Up @@ -525,6 +525,7 @@ jobs:
executor: focal
environment:
EMTEST_SKIP_NODE_CANARY: "1"
EMTEST_SKIP_ESM_INTEGRATION: "1"
steps:
- run-tests-linux:
test_targets: "core0"
Expand All @@ -533,6 +534,7 @@ jobs:
environment:
EMTEST_BROWSER: "node"
EMTEST_SKIP_NODE_CANARY: "1"
EMTEST_SKIP_ESM_INTEGRATION: "1"
steps:
- run-tests-linux:
# also run a few asan tests. Run these with frozen_cache disabled
Expand Down Expand Up @@ -578,6 +580,7 @@ jobs:
executor: focal
environment:
EMTEST_SKIP_NODE_CANARY: "1"
EMTEST_SKIP_ESM_INTEGRATION: "1"
steps:
- run-tests-linux:
frozen_cache: false
Expand Down Expand Up @@ -657,6 +660,7 @@ jobs:
executor: focal
environment:
EMTEST_SKIP_NODE_CANARY: "1"
EMTEST_SKIP_ESM_INTEGRATION: "1"
steps:
- run-tests-linux:
test_targets: "instance"
Expand All @@ -670,14 +674,15 @@ jobs:
# hardcodes /root into its launcher scripts so we need to reinstall v8.
- run: rm -rf $HOME/.jsvu
- install-v8
- install-node-canary
- install-node-latest
- run-tests:
title: "esm_integration"
test_targets: "esm_integration"
- upload-test-results
test-wasm2js1:
environment:
EMTEST_SKIP_NODE_CANARY: "1"
EMTEST_SKIP_ESM_INTEGRATION: "1"
executor: focal
steps:
- run-tests-linux:
Expand All @@ -692,7 +697,7 @@ jobs:
# hardcodes /root into its launcher scripts so we need to reinstall v8.
- run: rm -rf $HOME/.jsvu
- install-v8
- install-node-canary
- install-node-latest
# When running wasm64 tests we need to make sure we use the testing
# version of node (node canary) when running the compiler output (e.g.
# in configure tests.
Expand All @@ -717,7 +722,7 @@ jobs:
# hardcodes /root into its launcher scripts so we need to reinstall v8.
- run: rm -rf $HOME/.jsvu
- install-v8
- install-node-canary
- install-node-latest
# When running wasm64 tests we need to make sure we use the testing
# version of node (node canary) when running the compiler output (e.g.
# in configure tests.
Expand Down Expand Up @@ -921,6 +926,7 @@ jobs:
executor: focal
environment:
EMTEST_SKIP_NODE_CANARY: "1"
EMTEST_SKIP_ESM_INTEGRATION: "1"
EMTEST_SKIP_RUST: "1"
EMTEST_SKIP_WASM64: "1"
EMTEST_SKIP_NEW_CMAKE: "1"
Expand Down Expand Up @@ -998,6 +1004,7 @@ jobs:
environment:
EMTEST_LACKS_WEBGPU: "1"
EMTEST_SKIP_NODE_CANARY: "1"
EMTEST_SKIP_ESM_INTEGRATION: "1"
steps:
- run-tests-chrome:
title: "browser64_4gb"
Expand Down Expand Up @@ -1070,6 +1077,7 @@ jobs:
EMTEST_SKIP_SCONS: "1"
EMTEST_SKIP_RUST: "1"
EMTEST_SKIP_NODE_CANARY: "1"
EMTEST_SKIP_ESM_INTEGRATION: "1"
Copy link
Member

Choose a reason for hiding this comment

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

Where is this not skipped, after this PR?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Anywhere that has node 24 or above installed

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We could replace this with EMTEST_SKIP_SKIP_NODE24 I suppose but the general approach so far seems to be per-feature flags.

EMTEST_BROWSER: "0"
steps:
- checkout
Expand Down
9 changes: 6 additions & 3 deletions test/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
from common import RunnerCore, path_from_root, requires_native_clang, test_file, create_file
from common import skip_if, no_windows, no_mac, is_slow_test, parameterized, parameterize
from common import env_modify, with_env_modify, disabled, flaky, node_pthreads, also_with_wasm_bigint
from common import read_file, read_binary, requires_v8, requires_node, requires_dev_dependency, requires_wasm2js, requires_node_canary
from common import read_file, read_binary, requires_v8, requires_node, requires_dev_dependency, requires_wasm2js
from common import compiler_for, crossplatform, no_4gb, no_2gb, also_with_minimal_runtime, also_with_modularize
from common import with_all_fs, also_with_nodefs, also_with_nodefs_both, also_with_noderawfs, also_with_wasmfs
from common import with_all_eh_sjlj, with_all_sjlj, also_with_standalone_wasm, can_do_standalone, no_wasm64, requires_wasm_eh, requires_jspi
Expand Down Expand Up @@ -409,7 +409,11 @@ def should_use_closure(self):
return all(f not in self.emcc_args for f in prohibited) and any(f in self.emcc_args for f in required)

def setup_esm_integration(self):
self.require_node_canary()
if not self.try_require_node_version(24):
if 'EMTEST_SKIP_ESM_INTEGRATION' in os.environ:
self.skipTest(f'test requires node v24 and EMTEST_SKIP_ESM_INTEGRATION is set')
else:
self.fail(f'node v24 required to run this test. Use EMTEST_SKIP_ESM_INTEGRATION to skip')
self.node_args += ['--experimental-wasm-modules', '--no-warnings']
self.set_setting('WASM_ESM_INTEGRATION')
self.emcc_args += ['-Wno-experimental']
Expand Down Expand Up @@ -8397,7 +8401,6 @@ def test_asyncify_main_module(self):
self.do_core_test('test_hello_world.c')

# Test that pthread_join works correctly with asyncify.
@requires_node_canary
@node_pthreads
def test_pthread_join_and_asyncify(self):
# TODO Test with ASYNCIFY=1 https://github.com/emscripten-core/emscripten/issues/17552
Expand Down