tor-browser

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

spidermonkey.py (3557B)


      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 Support for running spidermonkey jobs via dedicated scripts
      6 """
      7 
      8 from taskgraph.util.schema import Schema
      9 from voluptuous import Any, Optional, Required
     10 
     11 from gecko_taskgraph.transforms.job import configure_taskdesc_for_run, run_job_using
     12 from gecko_taskgraph.transforms.job.common import (
     13    docker_worker_add_artifacts,
     14    generic_worker_add_artifacts,
     15 )
     16 
     17 sm_run_schema = Schema({
     18    Required("using"): Any(
     19        "spidermonkey",
     20        "spidermonkey-package",
     21    ),
     22    # SPIDERMONKEY_VARIANT and SPIDERMONKEY_PLATFORM
     23    Required("spidermonkey-variant"): str,
     24    Optional("spidermonkey-platform"): str,
     25    # Base work directory used to set up the task.
     26    Optional("workdir"): str,
     27    Required("tooltool-downloads"): Any(
     28        False,
     29        "public",
     30        "internal",
     31    ),
     32 })
     33 
     34 
     35 @run_job_using("docker-worker", "spidermonkey", schema=sm_run_schema)
     36 @run_job_using("docker-worker", "spidermonkey-package", schema=sm_run_schema)
     37 def docker_worker_spidermonkey(config, job, taskdesc):
     38    run = job["run"]
     39 
     40    worker = taskdesc["worker"] = job["worker"]
     41    worker.setdefault("artifacts", [])
     42 
     43    docker_worker_add_artifacts(config, job, taskdesc)
     44 
     45    env = worker.setdefault("env", {})
     46    env.update({
     47        "MOZHARNESS_DISABLE": "true",
     48        "SPIDERMONKEY_VARIANT": run.pop("spidermonkey-variant"),
     49        "MOZ_BUILD_DATE": config.params["moz_build_date"],
     50        "MOZ_SCM_LEVEL": config.params["level"],
     51    })
     52    if "spidermonkey-platform" in run:
     53        env["SPIDERMONKEY_PLATFORM"] = run.pop("spidermonkey-platform")
     54 
     55    script = "build-sm.sh"
     56    if run["using"] == "spidermonkey-package":
     57        script = "build-sm-package.sh"
     58 
     59    run["using"] = "run-task"
     60    run["cwd"] = run["workdir"]
     61    run["command"] = [f"./checkouts/gecko/taskcluster/scripts/builder/{script}"]
     62 
     63    configure_taskdesc_for_run(config, job, taskdesc, worker["implementation"])
     64 
     65 
     66 @run_job_using("generic-worker", "spidermonkey", schema=sm_run_schema)
     67 def generic_worker_spidermonkey(config, job, taskdesc):
     68    assert job["worker"]["os"] == "windows", "only supports windows right now"
     69 
     70    run = job["run"]
     71 
     72    worker = taskdesc["worker"] = job["worker"]
     73 
     74    generic_worker_add_artifacts(config, job, taskdesc)
     75 
     76    env = worker.setdefault("env", {})
     77    env.update({
     78        "MOZHARNESS_DISABLE": "true",
     79        "SPIDERMONKEY_VARIANT": run.pop("spidermonkey-variant"),
     80        "MOZ_BUILD_DATE": config.params["moz_build_date"],
     81        "MOZ_SCM_LEVEL": config.params["level"],
     82        "SCCACHE_DISABLE": "1",
     83        "WORK": ".",  # Override the defaults in build scripts
     84        "GECKO_PATH": "./src",  # with values suiteable for windows generic worker
     85        "UPLOAD_DIR": "./public/build",
     86    })
     87    if "spidermonkey-platform" in run:
     88        env["SPIDERMONKEY_PLATFORM"] = run.pop("spidermonkey-platform")
     89 
     90    script = "build-sm.sh"
     91    if run["using"] == "spidermonkey-package":
     92        script = "build-sm-package.sh"
     93        # Don't allow untested configurations yet
     94        raise Exception("spidermonkey-package is not a supported configuration")
     95 
     96    run["using"] = "run-task"
     97    run["command"] = [
     98        "c:\\mozilla-build\\msys2\\usr\\bin\\bash.exe "  # string concat
     99        '"./src/taskcluster/scripts/builder/%s"' % script
    100    ]
    101 
    102    configure_taskdesc_for_run(config, job, taskdesc, worker["implementation"])