Bug 1875239 - Switch most tasks to node 18. r=jmaher,firefox-build-system-reviewers,sergesanspaille,perftest-reviewers,sparky

Differential Revision: https://phabricator.services.mozilla.com/D201187
This commit is contained in:
Mike Hommey 2024-02-22 01:45:25 +00:00
parent cf08887328
commit 0842486b73
6 changed files with 36 additions and 121 deletions

View file

@ -444,7 +444,10 @@ skip-if = ["socketprocess_networking"]
prefs = ["security.allow_eval_with_system_principal=true"] prefs = ["security.allow_eval_with_system_principal=true"]
["test_client_auth_with_proxy.js"] ["test_client_auth_with_proxy.js"]
skip-if = ["os == 'android'"] skip-if = [
"os == 'android'",
"true", # bug 1881334
]
["test_coaleasing_h2_and_h3_connection.js"] ["test_coaleasing_h2_and_h3_connection.js"]
skip-if = [ skip-if = [
@ -616,6 +619,7 @@ run-sequentially = "node server exceptions dont replay well"
head = "head_channels.js head_cache.js head_cookies.js head_servers.js head_trr.js head_http3.js http2_test_common.js" head = "head_channels.js head_cache.js head_cookies.js head_servers.js head_trr.js head_http3.js http2_test_common.js"
["test_http2_with_proxy.js"] ["test_http2_with_proxy.js"]
skip-if = ["true"] # bug 1881334
run-sequentially = "node server exceptions dont replay well" run-sequentially = "node server exceptions dont replay well"
head = "head_channels.js head_cache.js head_cookies.js head_servers.js head_trr.js head_http3.js http2_test_common.js" head = "head_channels.js head_cache.js head_cookies.js head_servers.js head_trr.js head_http3.js http2_test_common.js"
@ -1153,6 +1157,7 @@ run-sequentially = "node server exceptions dont replay well"
skip-if = [ skip-if = [
"socketprocess_networking", # confirmation state isn't passed cross-process "socketprocess_networking", # confirmation state isn't passed cross-process
"appname == 'thunderbird'", # bug 1760097 "appname == 'thunderbird'", # bug 1760097
"true", # bug 1881334
] ]
run-sequentially = "node server exceptions dont replay well" run-sequentially = "node server exceptions dont replay well"

View file

@ -491,28 +491,6 @@ nodejs-12-linux64:
strip-components: 1 strip-components: 1
add-prefix: node/ add-prefix: node/
nodejs-16-linux64:
description: nodejs 16 for x64 linux
fetch:
type: static-url
url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-linux-x64.tar.xz
sha256: c88b52497ab38a3ddf526e5b46a41270320409109c3f74171b241132984fd08f
size: 22492000
artifact-name: nodejs.tar.zst
strip-components: 1
add-prefix: node/
nodejs-16-macosx64:
description: nodejs 16 for x64 macOS
fetch:
type: static-url
url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-darwin-x64.tar.xz
sha256: 601d1d632b9815dbb647f5cd440a95fa651110b5b4bcaf07ed3aa7886525716b
size: 20975524
artifact-name: nodejs.tar.zst
strip-components: 1
add-prefix: node/
nodejs-18-macosx64: nodejs-18-macosx64:
description: nodejs 18 for x64 macOS description: nodejs 18 for x64 macOS
fetch: fetch:
@ -524,17 +502,6 @@ nodejs-18-macosx64:
strip-components: 1 strip-components: 1
add-prefix: node/ add-prefix: node/
nodejs-16-macosx64-arm64:
description: nodejs 16 for arm64 macOS
fetch:
type: static-url
url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-darwin-arm64.tar.xz
sha256: 7313c9db5f5140ece847a97f366032a10bddb6d87fa28a361ada918addcd5c73
size: 19363804
artifact-name: nodejs.tar.zst
strip-components: 1
add-prefix: node/
nodejs-18-macosx64-arm64: nodejs-18-macosx64-arm64:
description: nodejs 18 for arm64 macOS description: nodejs 18 for arm64 macOS
fetch: fetch:
@ -546,17 +513,6 @@ nodejs-18-macosx64-arm64:
strip-components: 1 strip-components: 1
add-prefix: node/ add-prefix: node/
nodejs-16-win32:
description: nodejs 16 for x86 Windows
fetch:
type: static-url
url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-win-x86.zip
sha256: 17e2bf8ed00b3d15321743104104c8b6ef55677dfc18ee2ed44de64fbf2c4def
size: 25424808
artifact-name: nodejs.tar.zst
strip-components: 1
add-prefix: node/
nodejs-18-win32: nodejs-18-win32:
description: nodejs 18 for x86 Windows description: nodejs 18 for x86 Windows
fetch: fetch:
@ -568,17 +524,6 @@ nodejs-18-win32:
strip-components: 1 strip-components: 1
add-prefix: node/ add-prefix: node/
nodejs-16-win64:
description: nodejs 16 for x64 Windows
fetch:
type: static-url
url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-win-x64.zip
sha256: 534ca7a24e999c81cec847a498cc43d47e2bb158f6edf639e5297f2718350e96
size: 27072850
artifact-name: nodejs.tar.zst
strip-components: 1
add-prefix: node/
nodejs-18-win64: nodejs-18-win64:
description: nodejs 18 for x64 Windows description: nodejs 18 for x64 Windows
fetch: fetch:

View file

@ -387,7 +387,7 @@ browsertime:
toolchain-artifact: public/build/browsertime.tar.zst toolchain-artifact: public/build/browsertime.tar.zst
fetches: fetches:
toolchain: toolchain:
- linux64-node-16 - linux64-node
wrench-deps: wrench-deps:
description: "Downloads all the crates needed for building wrench" description: "Downloads all the crates needed for building wrench"

View file

@ -20,16 +20,6 @@ linux64-node-12:
fetch: fetch:
- nodejs-12-linux64 - nodejs-12-linux64
linux64-node-16:
treeherder:
symbol: TL(node-16)
run:
toolchain-alias:
- linux64-node
fetches:
fetch:
- nodejs-16-linux64
linux64-node-18: linux64-node-18:
# The upstream prebuilt binary requires glibc 2.28, which is too recent for Ubuntu 18.04, # The upstream prebuilt binary requires glibc 2.28, which is too recent for Ubuntu 18.04,
# so we build our own that won't have that requirement. # so we build our own that won't have that requirement.
@ -38,6 +28,8 @@ linux64-node-18:
symbol: TL(node-18) symbol: TL(node-18)
run: run:
script: build-nodejs.sh script: build-nodejs.sh
toolchain-alias:
- linux64-node
fetches: fetches:
fetch: fetch:
- nodejs-18-source - nodejs-18-source
@ -45,70 +37,43 @@ linux64-node-18:
- linux64-gcc-11 - linux64-gcc-11
- linux64-toolchain-sysroot - linux64-toolchain-sysroot
macosx64-node-16:
treeherder:
symbol: TM(node-16)
run:
toolchain-alias:
- macosx64-node
fetches:
fetch:
- nodejs-16-macosx64
macosx64-node-18: macosx64-node-18:
treeherder: treeherder:
symbol: TM(node-18) symbol: TM(node-18)
run:
toolchain-alias:
- macosx64-node
fetches: fetches:
fetch: fetch:
- nodejs-18-macosx64 - nodejs-18-macosx64
macosx64-aarch64-node-16: macosx64-aarch64-node-18:
treeherder: treeherder:
symbol: TM(node-16-arm64) symbol: TM(node-18-arm64)
run: run:
toolchain-alias: toolchain-alias:
- macosx64-aarch64-node - macosx64-aarch64-node
fetches:
fetch:
- nodejs-16-macosx64-arm64
macosx64-aarch64-node-18:
treeherder:
symbol: TM(node-18-arm64)
fetches: fetches:
fetch: fetch:
- nodejs-18-macosx64-arm64 - nodejs-18-macosx64-arm64
win64-node-16: win64-node-18:
treeherder: treeherder:
symbol: TW64(node-16) symbol: TW64(node-18)
run: run:
toolchain-alias: toolchain-alias:
- win64-node - win64-node
fetches:
fetch:
- nodejs-16-win64
win64-node-18:
treeherder:
symbol: TW64(node-18)
fetches: fetches:
fetch: fetch:
- nodejs-18-win64 - nodejs-18-win64
win32-node-16: win32-node-18:
treeherder: treeherder:
symbol: TW32(node-16) symbol: TW32(node-18)
run: run:
toolchain-alias: toolchain-alias:
- win32-node - win32-node
fetches:
fetch:
- nodejs-16-win32
win32-node-18:
treeherder:
symbol: TW32(node-18)
fetches: fetches:
fetch: fetch:
- nodejs-18-win32 - nodejs-18-win32

View file

@ -308,25 +308,25 @@ def setup_browsertime(config, tasks):
ts = { ts = {
"by-test-platform": { "by-test-platform": {
"android.*": ["browsertime", "linux64-geckodriver", "linux64-node-16"], "android.*": ["browsertime", "linux64-geckodriver", "linux64-node"],
"linux.*": ["browsertime", "linux64-geckodriver", "linux64-node-16"], "linux.*": ["browsertime", "linux64-geckodriver", "linux64-node"],
"macosx1015.*": [ "macosx1015.*": [
"browsertime", "browsertime",
"macosx64-geckodriver", "macosx64-geckodriver",
"macosx64-node-16", "macosx64-node",
], ],
"macosx1300.*": [ "macosx1300.*": [
"browsertime", "browsertime",
"macosx64-aarch64-geckodriver", "macosx64-aarch64-geckodriver",
"macosx64-aarch64-node-16", "macosx64-aarch64-node",
], ],
"windows.*aarch64.*": [ "windows.*aarch64.*": [
"browsertime", "browsertime",
"win32-geckodriver", "win32-geckodriver",
"win32-node-16", "win32-node",
], ],
"windows.*-32.*": ["browsertime", "win32-geckodriver", "win32-node-16"], "windows.*-32.*": ["browsertime", "win32-geckodriver", "win32-node"],
"windows.*-64.*": ["browsertime", "win64-geckodriver", "win64-node-16"], "windows.*-64.*": ["browsertime", "win64-geckodriver", "win64-node"],
}, },
} }

View file

@ -267,7 +267,7 @@ class RaptorRunner(MozbuildObject):
def setup_node(command_context): def setup_node(command_context):
"""Fetch the latest node-16 binary and install it into the .mozbuild directory.""" """Fetch the latest node-18 binary and install it into the .mozbuild directory."""
import platform import platform
from mozbuild.artifact_commands import artifact_toolchain from mozbuild.artifact_commands import artifact_toolchain
@ -276,11 +276,11 @@ def setup_node(command_context):
print("Setting up node for browsertime...") print("Setting up node for browsertime...")
state_dir = get_state_dir() state_dir = get_state_dir()
cache_path = os.path.join(state_dir, "browsertime", "node-16") cache_path = os.path.join(state_dir, "browsertime", "node-18")
def __check_for_node(): def __check_for_node():
# Check standard locations first # Check standard locations first
node_exe = find_node_executable(min_version=Version("16.0.0")) node_exe = find_node_executable(min_version=Version("18.0.0"))
if node_exe and (node_exe[0] is not None): if node_exe and (node_exe[0] is not None):
return node_exe[0] return node_exe[0]
if not os.path.exists(cache_path): if not os.path.exists(cache_path):
@ -293,14 +293,14 @@ def setup_node(command_context):
node_exe_path = os.path.join( node_exe_path = os.path.join(
state_dir, state_dir,
"browsertime", "browsertime",
"node-16", "node-18",
"node", "node",
) )
else: else:
node_exe_path = os.path.join( node_exe_path = os.path.join(
state_dir, state_dir,
"browsertime", "browsertime",
"node-16", "node-18",
"node", "node",
"bin", "bin",
) )
@ -313,7 +313,7 @@ def setup_node(command_context):
node_exe = __check_for_node() node_exe = __check_for_node()
if node_exe is None: if node_exe is None:
toolchain_job = "{}-node-16" toolchain_job = "{}-node-18"
plat = platform.system() plat = platform.system()
if plat == "Windows": if plat == "Windows":
toolchain_job = toolchain_job.format("win64") toolchain_job = toolchain_job.format("win64")
@ -326,7 +326,7 @@ def setup_node(command_context):
toolchain_job = toolchain_job.format("linux64") toolchain_job = toolchain_job.format("linux64")
print( print(
"Downloading Node v16 from Taskcluster toolchain {}...".format( "Downloading Node v18 from Taskcluster toolchain {}...".format(
toolchain_job toolchain_job
) )
) )
@ -351,11 +351,11 @@ def setup_node(command_context):
node_exe = __check_for_node() node_exe = __check_for_node()
if node_exe is None: if node_exe is None:
raise Exception("Could not find Node v16 binary for Raptor-Browsertime") raise Exception("Could not find Node v18 binary for Raptor-Browsertime")
print("Finished downloading Node v16 from Taskcluster") print("Finished downloading Node v18 from Taskcluster")
print("Node v16+ found at: %s" % node_exe) print("Node v18+ found at: %s" % node_exe)
return node_exe return node_exe