tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 96b0230b77306614e960a04cce432f192ff899ab
parent cf3790ae281e8789c94194ef92c567f9b35c2c1b
Author: Abhishek Nimalan <abhisheknimalan@gmail.com>
Date:   Mon, 17 Nov 2025 17:00:40 +0000

Bug 1970961 - Add symbolication dependencies to profiling tasks using mozgeckoprofiler. r=kshampur,perftest-reviewers,taskgraph-reviewers,ahal

Ensure CI tasks run with the profiler option (`--gecko-profile` for
raptor and talos tasks, `--profiler` for mochitest tasks) include the
necessary `node`,`samply`, and `symbolicator-cli` dependencies for
symbolication with mozgeckoprofiler.

Differential Revision: https://phabricator.services.mozilla.com/D268225

Diffstat:
Mtaskcluster/gecko_taskgraph/transforms/test/other.py | 48++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+), 0 deletions(-)

diff --git a/taskcluster/gecko_taskgraph/transforms/test/other.py b/taskcluster/gecko_taskgraph/transforms/test/other.py @@ -1071,6 +1071,54 @@ def set_profile(config, tasks): @transforms.add +def add_gecko_profile_symbolication_deps(config, tasks): + """Add symbolication dependencies when profiling raptor, talos, or mochitest tests""" + + try_task_config = config.params.get("try_task_config", {}) + gecko_profile = try_task_config.get("gecko-profile", False) + env = try_task_config.get("env", {}) + startup_profile = env.get("MOZ_PROFILER_STARTUP") == "1" + + for task in tasks: + + if (gecko_profile and task["suite"] in ["talos", "raptor"]) or ( + startup_profile and "mochitest" in task["suite"] + ): + + fetches = task.setdefault("fetches", {}) + fetch_toolchains = fetches.setdefault("toolchain", []) + fetch_toolchains.append("symbolicator-cli") + + test_platform = task["test-platform"] + + if "macosx" in test_platform and "aarch64" in test_platform: + fetch_toolchains.append("macosx64-aarch64-samply") + elif "macosx" in test_platform: + fetch_toolchains.append("macosx64-samply") + elif "win" in test_platform: + fetch_toolchains.append("win64-samply") + else: + fetch_toolchains.append("linux64-samply") + + # Add node as a dependency for talos and mochitest tasks if needed. + # node is used to run symbolicator-cli, our profile symbolication tool + if task["suite"] == "talos" or "mochitest" in task["suite"]: + if "macosx" in test_platform and "aarch64" in test_platform: + node_toolchain = "macosx64-aarch64-node" + elif "macosx" in test_platform: + node_toolchain = "macosx64-node" + elif "win" in test_platform: + node_toolchain = "win64-node" + else: + node_toolchain = "linux64-node" + + if node_toolchain not in fetch_toolchains: + fetch_toolchains.append(node_toolchain) + + yield task + + +@transforms.add def set_tag(config, tasks): """Set test for a specific tag.""" tag = None