tor-browser

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

release_generate_checksums.py (1510B)


      1 # This Source Code Form is subject to the terms of the Mozilla Public
      2 # License, v. 2.0. If a copy of the MPL was not distributed with this
      3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      4 """
      5 Transform the checksums task into an actual task description.
      6 """
      7 
      8 import copy
      9 import logging
     10 
     11 from taskgraph.transforms.base import TransformSequence
     12 from taskgraph.util.schema import resolve_keyed_by
     13 
     14 from gecko_taskgraph.util.attributes import release_level
     15 from gecko_taskgraph.util.scriptworker import get_release_config
     16 
     17 logger = logging.getLogger(__name__)
     18 
     19 transforms = TransformSequence()
     20 
     21 
     22 @transforms.add
     23 def handle_keyed_by(config, jobs):
     24    """Resolve fields that can be keyed by project, etc."""
     25    fields = [
     26        "run.config",
     27        "run.extra-config",
     28    ]
     29    for job in jobs:
     30        job = copy.deepcopy(job)
     31        for field in fields:
     32            resolve_keyed_by(
     33                item=job,
     34                field=field,
     35                item_name=job["name"],
     36                **{"release-level": release_level(config.params)},
     37            )
     38        yield job
     39 
     40 
     41 @transforms.add
     42 def interpolate(config, jobs):
     43    release_config = get_release_config(config)
     44    for job in jobs:
     45        mh_options = list(job["run"]["options"])
     46        job["run"]["options"] = [
     47            option.format(
     48                version=release_config["version"],
     49                build_number=release_config["build_number"],
     50            )
     51            for option in mh_options
     52        ]
     53        yield job