summaryrefslogtreecommitdiffstats
path: root/taskcluster/gecko_taskgraph/transforms
diff options
context:
space:
mode:
Diffstat (limited to 'taskcluster/gecko_taskgraph/transforms')
-rw-r--r--taskcluster/gecko_taskgraph/transforms/artifact.py4
-rw-r--r--taskcluster/gecko_taskgraph/transforms/artifacts.yml4
-rw-r--r--taskcluster/gecko_taskgraph/transforms/bootstrap.py2
-rw-r--r--taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py11
-rw-r--r--taskcluster/gecko_taskgraph/transforms/snap_test.py2
-rw-r--r--taskcluster/gecko_taskgraph/transforms/source_test.py29
-rw-r--r--taskcluster/gecko_taskgraph/transforms/test/other.py29
-rw-r--r--taskcluster/gecko_taskgraph/transforms/test/raptor.py23
8 files changed, 63 insertions, 41 deletions
diff --git a/taskcluster/gecko_taskgraph/transforms/artifact.py b/taskcluster/gecko_taskgraph/transforms/artifact.py
index 559148f7b4..b14f723d4a 100644
--- a/taskcluster/gecko_taskgraph/transforms/artifact.py
+++ b/taskcluster/gecko_taskgraph/transforms/artifact.py
@@ -85,9 +85,11 @@ def set_artifact_expiration(config, jobs):
art_dict = manifest["macos"]
elif plat.startswith("android"):
art_dict = manifest["android"]
+ elif plat.startswith("ios"):
+ art_dict = manifest["ios"]
else:
print(
- 'The platform name "{plat}" didn\'t start with',
+ f'The platform name "{plat}" didn\'t start with',
'"win", "mac", "android", or "linux".',
file=sys.stderr,
)
diff --git a/taskcluster/gecko_taskgraph/transforms/artifacts.yml b/taskcluster/gecko_taskgraph/transforms/artifacts.yml
index 26f06640ad..efcbc70f15 100644
--- a/taskcluster/gecko_taskgraph/transforms/artifacts.yml
+++ b/taskcluster/gecko_taskgraph/transforms/artifacts.yml
@@ -18,3 +18,7 @@ android:
target.crashreporter-symbols-full.tar.zst: shortest
sccache.log: shortest
sccache-stats.json: shortest
+
+ios:
+ sccache.log: shortest
+ sccache-stats.json: shortest
diff --git a/taskcluster/gecko_taskgraph/transforms/bootstrap.py b/taskcluster/gecko_taskgraph/transforms/bootstrap.py
index e4537cab01..9c02fc6819 100644
--- a/taskcluster/gecko_taskgraph/transforms/bootstrap.py
+++ b/taskcluster/gecko_taskgraph/transforms/bootstrap.py
@@ -59,7 +59,7 @@ def bootstrap_tasks(config, tasks):
f"python3 bootstrap.py --no-interactive --application-choice {app}",
"cd mozilla-unified",
# After bootstrap, configure should go through without its own auto-bootstrap.
- "./mach configure --disable-bootstrap",
+ "./mach configure --enable-bootstrap=no-update",
# Then a build should go through too.
"./mach build",
]
diff --git a/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py b/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py
index eb4aea609f..060f37c9c2 100644
--- a/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py
+++ b/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py
@@ -15,6 +15,7 @@ from gecko_taskgraph.transforms.job import configure_taskdesc_for_run, run_job_u
from gecko_taskgraph.transforms.job.common import get_expiration, support_vcs_checkout
from gecko_taskgraph.transforms.test import normpath, test_description_schema
from gecko_taskgraph.util.attributes import is_try
+from gecko_taskgraph.util.perftest import is_external_browser
VARIANTS = [
"shippable",
@@ -63,9 +64,13 @@ def test_packages_url(taskdesc):
)
# for android shippable we need to add 'en-US' to the artifact url
test = taskdesc["run"]["test"]
- if "android" in test["test-platform"] and (
- get_variant(test["test-platform"])
- in ("shippable", "shippable-qr", "shippable-lite", "shippable-lite-qr")
+ if (
+ "android" in test["test-platform"]
+ and (
+ get_variant(test["test-platform"])
+ in ("shippable", "shippable-qr", "shippable-lite", "shippable-lite-qr")
+ )
+ and not is_external_browser(test.get("try-name", ""))
):
head, tail = os.path.split(artifact_url)
artifact_url = os.path.join(head, "en-US", tail)
diff --git a/taskcluster/gecko_taskgraph/transforms/snap_test.py b/taskcluster/gecko_taskgraph/transforms/snap_test.py
index e6d879f225..d49276843d 100644
--- a/taskcluster/gecko_taskgraph/transforms/snap_test.py
+++ b/taskcluster/gecko_taskgraph/transforms/snap_test.py
@@ -43,6 +43,8 @@ def fill_template(config, tasks):
timeout = 10
if collection != "opt":
timeout = 60
+ task["task"]["payload"]["env"]["BUILD_IS_DEBUG"] = "1"
+
task["task"]["payload"]["env"]["TEST_TIMEOUT"] = "{}".format(timeout)
yield task
diff --git a/taskcluster/gecko_taskgraph/transforms/source_test.py b/taskcluster/gecko_taskgraph/transforms/source_test.py
index 5c561e8114..e3eeb7c819 100644
--- a/taskcluster/gecko_taskgraph/transforms/source_test.py
+++ b/taskcluster/gecko_taskgraph/transforms/source_test.py
@@ -10,7 +10,6 @@ treeherder configuration and attributes for that platform.
import copy
import os
-import taskgraph
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.attributes import keymatch
from taskgraph.util.schema import Schema, optionally_keyed_by, resolve_keyed_by
@@ -18,7 +17,6 @@ from taskgraph.util.treeherder import join_symbol, split_symbol
from voluptuous import Any, Extra, Optional, Required
from gecko_taskgraph.transforms.job import job_description_schema
-from gecko_taskgraph.util.hg import get_json_automationrelevance
source_test_description_schema = Schema(
{
@@ -239,33 +237,6 @@ def set_code_review_env(config, jobs):
@transforms.add
-def set_base_revision_in_tgdiff(config, jobs):
- # Don't attempt to download 'json-automation' locally as the revision may
- # not exist in the repository.
- if not os.environ.get("MOZ_AUTOMATION") or taskgraph.fast:
- yield from jobs
- return
-
- data = get_json_automationrelevance(
- config.params["head_repository"], config.params["head_rev"]
- )
- for job in jobs:
- if job["name"] != "taskgraph-diff":
- yield job
- continue
-
- job["task-context"] = {
- "from-object": {
- "base_rev": data["changesets"][0]["parents"][0],
- },
- "substitution-fields": [
- "run.command",
- ],
- }
- yield job
-
-
-@transforms.add
def set_worker_exit_code(config, jobs):
for job in jobs:
worker = job["worker"]
diff --git a/taskcluster/gecko_taskgraph/transforms/test/other.py b/taskcluster/gecko_taskgraph/transforms/test/other.py
index dc258ef97a..b8cb95cff7 100644
--- a/taskcluster/gecko_taskgraph/transforms/test/other.py
+++ b/taskcluster/gecko_taskgraph/transforms/test/other.py
@@ -16,6 +16,7 @@ from taskgraph.util.taskcluster import get_artifact_path, get_index_url
from voluptuous import Any, Optional, Required
from gecko_taskgraph.transforms.test.variant import TEST_VARIANTS
+from gecko_taskgraph.util.perftest import is_external_browser
from gecko_taskgraph.util.platforms import platform_family
from gecko_taskgraph.util.templates import merge
@@ -260,6 +261,20 @@ def handle_keyed_by(config, tasks):
@transforms.add
+def setup_raptor_external_browser_platforms(config, tasks):
+ for task in tasks:
+ if task["suite"] != "raptor":
+ yield task
+ continue
+
+ if is_external_browser(task["try-name"]):
+ task["build-platform"] = "linux64/opt"
+ task["build-label"] = "build-linux64/opt"
+
+ yield task
+
+
+@transforms.add
def set_target(config, tasks):
for task in tasks:
build_platform = task["build-platform"]
@@ -308,25 +323,25 @@ def setup_browsertime(config, tasks):
ts = {
"by-test-platform": {
- "android.*": ["browsertime", "linux64-geckodriver", "linux64-node-16"],
- "linux.*": ["browsertime", "linux64-geckodriver", "linux64-node-16"],
+ "android.*": ["browsertime", "linux64-geckodriver", "linux64-node"],
+ "linux.*": ["browsertime", "linux64-geckodriver", "linux64-node"],
"macosx1015.*": [
"browsertime",
"macosx64-geckodriver",
- "macosx64-node-16",
+ "macosx64-node",
],
"macosx1400.*": [
"browsertime",
"macosx64-aarch64-geckodriver",
- "macosx64-aarch64-node-16",
+ "macosx64-aarch64-node",
],
"windows.*aarch64.*": [
"browsertime",
"win32-geckodriver",
- "win32-node-16",
+ "win32-node",
],
- "windows.*-32.*": ["browsertime", "win32-geckodriver", "win32-node-16"],
- "windows.*-64.*": ["browsertime", "win64-geckodriver", "win64-node-16"],
+ "windows.*-32.*": ["browsertime", "win32-geckodriver", "win32-node"],
+ "windows.*-64.*": ["browsertime", "win64-geckodriver", "win64-node"],
},
}
diff --git a/taskcluster/gecko_taskgraph/transforms/test/raptor.py b/taskcluster/gecko_taskgraph/transforms/test/raptor.py
index 0667d22bb2..18e21e6a1e 100644
--- a/taskcluster/gecko_taskgraph/transforms/test/raptor.py
+++ b/taskcluster/gecko_taskgraph/transforms/test/raptor.py
@@ -10,6 +10,7 @@ from voluptuous import Extra, Optional, Required
from gecko_taskgraph.transforms.test import test_description_schema
from gecko_taskgraph.util.copy_task import copy_task
+from gecko_taskgraph.util.perftest import is_external_browser
transforms = TransformSequence()
task_transforms = TransformSequence()
@@ -316,6 +317,28 @@ def add_extra_options(config, tests):
yield test
+@transforms.add
+def modify_mozharness_configs(config, tests):
+ for test in tests:
+ if not is_external_browser(test["app"]):
+ yield test
+ continue
+
+ test_platform = test["test-platform"]
+ mozharness = test.setdefault("mozharness", {})
+ if "mac" in test_platform:
+ mozharness["config"] = ["raptor/mac_external_browser_config.py"]
+ elif "windows" in test_platform:
+ mozharness["config"] = ["raptor/windows_external_browser_config.py"]
+ elif "linux" in test_platform:
+ mozharness["config"] = ["raptor/linux_external_browser_config.py"]
+ elif "android" in test_platform:
+ test["target"] = "target.tar.bz2"
+ mozharness["config"] = ["raptor/android_hw_external_browser_config.py"]
+
+ yield test
+
+
@task_transforms.add
def add_scopes_and_proxy(config, tasks):
for task in tasks: