Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/taskcluster/gecko_taskgraph/transforms/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  build_lints.py   Sprache: Python

 
# 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/.
"""
Apply some defaults and minor modifications to the jobs defined in the build
kind.
"""

from taskgraph.transforms.base import TransformSequence

transforms = TransformSequence()


@transforms.add
def check_mozharness_perfherder_options(config, jobs):
    """Verify that multiple jobs don't use the same perfherder bucket.

    Build jobs record perfherder metrics by default. Perfherder metrics go
    to a bucket derived by the platform by default. The name can further be
    customized by the presence of "extra options" either defined in
    mozharness sub-configs or in an environment variable.

    This linter tries to verify that no 2 jobs will send Perfherder metrics
    to the same bucket by looking for jobs not defining extra options when
    their platform or mozharness config are otherwise similar.
    """

    SEEN_CONFIGS = {}

    for job in jobs:
        if job["run"]["using"] != "mozharness":
            yield job
            continue

        worker = job.get("worker", {})

        platform = job["treeherder"]["platform"]
        primary_config = job["run"]["config"][0]
        options = worker.get("env", {}).get("PERFHERDER_EXTRA_OPTIONS")
        shippable = job.get("attributes", {}).get("shippable"False)

        # This isn't strictly necessary. But the Perfherder code looking at the
        # values we care about is only active on builds. So it doesn't make
        # sense to run this linter elsewhere.
        assert primary_config.startswith("builds/")

        key = (platform, primary_config, shippable, options)

        if key in SEEN_CONFIGS:
            raise Exception(
                "Non-unique Perfherder data collection for jobs %s-%s and %s: "
                "set PERFHERDER_EXTRA_OPTIONS in worker environment variables "
                "or use different mozconfigs"
                % (config.kind, job["name"], SEEN_CONFIGS[key])
            )

        SEEN_CONFIGS[key] = "{}-{}".format(config.kind, job["name"])

        yield job

100%


¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.