mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 04:41:11 +00:00
Bug 1919083 - Create 'os-integration' cron tasks to help validate worker image changes, r=jmaher,taskgraph-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D222349
This commit is contained in:
parent
3a6127c2b7
commit
ca838ec1cb
10
.cron.yml
10
.cron.yml
@ -399,3 +399,13 @@ jobs:
|
|||||||
run-on-projects: [mozilla-beta]
|
run-on-projects: [mozilla-beta]
|
||||||
when:
|
when:
|
||||||
- {hour: 2, minute: 0}
|
- {hour: 2, minute: 0}
|
||||||
|
|
||||||
|
- name: os-integration
|
||||||
|
job:
|
||||||
|
type: decision-task
|
||||||
|
treeherder-symbol: osint
|
||||||
|
target-tasks-method: os-integration
|
||||||
|
run-on-projects:
|
||||||
|
- mozilla-central
|
||||||
|
when:
|
||||||
|
- {weekday: 'Monday', hour: 6, minute: 0}
|
||||||
|
@ -109,6 +109,7 @@ treeherder:
|
|||||||
'M-f-swr-cf': 'Mochitest failures software webrender w/confirm failure'
|
'M-f-swr-cf': 'Mochitest failures software webrender w/confirm failure'
|
||||||
'M-msix': 'Mochitests from MSIX builds'
|
'M-msix': 'Mochitests from MSIX builds'
|
||||||
'M-msix-cf': 'Mochitests confirm failure from MSIX builds'
|
'M-msix-cf': 'Mochitests confirm failure from MSIX builds'
|
||||||
|
'M-osint': 'Mochitests tagged with os-integration'
|
||||||
'MSI': 'Repack installers into MSIs'
|
'MSI': 'Repack installers into MSIs'
|
||||||
'MSIs': 'Signing of Repacked installers of MSIs'
|
'MSIs': 'Signing of Repacked installers of MSIs'
|
||||||
'MSIX': 'Repack into MSIX package'
|
'MSIX': 'Repack into MSIX package'
|
||||||
|
@ -1727,3 +1727,12 @@ def target_tasks_android_l10n_import(full_task_graph, parameters, graph_config):
|
|||||||
@register_target_task("android-l10n-sync")
|
@register_target_task("android-l10n-sync")
|
||||||
def target_tasks_android_l10n_sync(full_task_graph, parameters, graph_config):
|
def target_tasks_android_l10n_sync(full_task_graph, parameters, graph_config):
|
||||||
return [l for l, t in full_task_graph.tasks.items() if l == "android-l10n-sync"]
|
return [l for l, t in full_task_graph.tasks.items() if l == "android-l10n-sync"]
|
||||||
|
|
||||||
|
|
||||||
|
@register_target_task("os-integration")
|
||||||
|
def target_tasks_os_integration(full_task_graph, parameters, graph_config):
|
||||||
|
return [
|
||||||
|
l
|
||||||
|
for l, t in full_task_graph.tasks.items()
|
||||||
|
if t.attributes.get("unittest_variant") == "os-integration"
|
||||||
|
]
|
||||||
|
@ -17,7 +17,6 @@ what should run where. this is the wrong place for special-casing platforms,
|
|||||||
for example - use `all_tests.py` instead.
|
for example - use `all_tests.py` instead.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
|
|
||||||
@ -407,10 +406,16 @@ def run_remaining_transforms(config, tasks):
|
|||||||
("worker", None),
|
("worker", None),
|
||||||
("confirm_failure", None),
|
("confirm_failure", None),
|
||||||
("pernosco", lambda t: t["build-platform"].startswith("linux64")),
|
("pernosco", lambda t: t["build-platform"].startswith("linux64")),
|
||||||
# These transforms should always run last as there is never any
|
# These transforms should run last as there is never any difference in
|
||||||
# difference in configuration from one chunk to another (other than
|
# configuration from one chunk to another (other than chunk number).
|
||||||
# chunk number).
|
# Although the os-integration transforms setup an index route that
|
||||||
|
# depends on the chunk number.
|
||||||
("chunk", None),
|
("chunk", None),
|
||||||
|
(
|
||||||
|
"os_integration",
|
||||||
|
lambda t: t.get("attributes", {}).get("unittest_variant")
|
||||||
|
== "os-integration",
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
|
@ -18,7 +18,11 @@ def test_confirm_failure_tasks(config, tasks):
|
|||||||
yield task
|
yield task
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if "backlog" in task["suite"] or "failure" in task["suite"]:
|
if (
|
||||||
|
"backlog" in task["suite"]
|
||||||
|
or "failure" in task["suite"]
|
||||||
|
or task.get("attributes", {}).get("unittest_variant") == "os-integration"
|
||||||
|
):
|
||||||
yield task
|
yield task
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
from taskgraph.transforms.base import TransformSequence
|
||||||
|
|
||||||
|
transforms = TransformSequence()
|
||||||
|
|
||||||
|
|
||||||
|
@transforms.add
|
||||||
|
def add_index_route(config, tasks):
|
||||||
|
project = config.params["project"]
|
||||||
|
if project != "mozilla-central":
|
||||||
|
yield from tasks
|
||||||
|
return
|
||||||
|
|
||||||
|
index_base = f"gecko.v2.{project}.latest.test.os-integration"
|
||||||
|
for task in tasks:
|
||||||
|
routing_key = f"{index_base}.{task['test-platform']}.{task['test-name']}"
|
||||||
|
if task["chunks"] > 1:
|
||||||
|
routing_key = f"{routing_key}-{task['this-chunk']}"
|
||||||
|
|
||||||
|
task.setdefault("routes", []).append(routing_key)
|
||||||
|
yield task
|
@ -37,18 +37,11 @@ WPT_SUBSUITES = {
|
|||||||
|
|
||||||
|
|
||||||
def get_test_tags(config, env):
|
def get_test_tags(config, env):
|
||||||
test_tags = []
|
tags = json.loads(
|
||||||
try_config = json.loads(
|
|
||||||
config.params["try_task_config"].get("env", {}).get("MOZHARNESS_TEST_TAG", "[]")
|
config.params["try_task_config"].get("env", {}).get("MOZHARNESS_TEST_TAG", "[]")
|
||||||
)
|
)
|
||||||
env_tags = env.get("MOZHARNESS_TEST_TAG", [])
|
tags.extend(env.get("MOZHARNESS_TEST_TAG", []))
|
||||||
if env_tags:
|
return list(set(tags))
|
||||||
if try_config:
|
|
||||||
env_tags.extend(try_config)
|
|
||||||
test_tags = list(set(env_tags))
|
|
||||||
elif try_config:
|
|
||||||
test_tags = try_config
|
|
||||||
return test_tags
|
|
||||||
|
|
||||||
|
|
||||||
def guess_mozinfo_from_task(task, repo="", test_tags=[]):
|
def guess_mozinfo_from_task(task, repo="", test_tags=[]):
|
||||||
|
@ -475,3 +475,18 @@ draw-snapshot:
|
|||||||
mozharness:
|
mozharness:
|
||||||
extra-options:
|
extra-options:
|
||||||
- "--setpref=reftest.use-draw-snapshot=true"
|
- "--setpref=reftest.use-draw-snapshot=true"
|
||||||
|
|
||||||
|
os-integration:
|
||||||
|
description: >-
|
||||||
|
{description} limited to tests identified as good candidates for validating the test environment.
|
||||||
|
component: Release Engineering::Firefox-CI Administration
|
||||||
|
expiration: never
|
||||||
|
suffix: osint
|
||||||
|
when:
|
||||||
|
$eval: >-
|
||||||
|
"debug" in task["test-platform"]
|
||||||
|
&& !("macosx" in task["test-platform"])
|
||||||
|
merge:
|
||||||
|
worker:
|
||||||
|
env:
|
||||||
|
MOZHARNESS_TEST_TAG: ["os_integration"]
|
||||||
|
Loading…
Reference in New Issue
Block a user