tor-browser

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

commit cddf9eb9589b27b1ff1e27269062ff1c90978236
parent d3c31b9e7480b7f4592a50d6df213ee28d8192a2
Author: Julien Cristau <jcristau@mozilla.com>
Date:   Thu,  9 Oct 2025 07:53:15 +0000

Bug 1993289 - use task_duplicates attribute in `retrigger` action r=taskgraph-reviewers,releng-reviewers,bhearsum

Instead of calling `create_tasks` N times, set the target task's
`task_duplicates` attribute, to let taskgraph know to make N copies at
submission time.  Since `create_tasks` ends up making a copy of the
full graph and running optimizations on it each time, this saves a
significant amount of time as N gets larger.

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

Diffstat:
Mtaskcluster/gecko_taskgraph/actions/retrigger.py | 28+++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/taskcluster/gecko_taskgraph/actions/retrigger.py b/taskcluster/gecko_taskgraph/actions/retrigger.py @@ -166,20 +166,22 @@ def retrigger_action(parameters, graph_config, input, task_group_id, task_id): with_downstream = " (with downstream) " times = input.get("times", 1) - for i in range(times): - create_tasks( - graph_config, - to_run, - full_task_graph, - label_to_taskid, - parameters, - decision_task_id, - i, - action_tag="retrigger-task", - ) - logger.info(f"Scheduled {label}{with_downstream}(time {i + 1}/{times})") - combine_task_graph_files(list(range(times))) + def modifier(task): + task.attributes["task_duplicates"] = times + return task + + create_tasks( + graph_config, + to_run, + full_task_graph, + label_to_taskid, + parameters, + decision_task_id, + action_tag="retrigger-task", + modifier=modifier, + ) + logger.info(f"Scheduled {label}{with_downstream}({times} times)") @register_callback_action(