Bug 1845715 - Check for failure when getting RegExp match result template r=iain
[gecko.git] / taskcluster / gecko_taskgraph / parameters.py
blobf6fa2481fcfc77e97ba068758f03a0f034b442a5
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/.
5 import logging
6 import os
8 from taskgraph.parameters import extend_parameters_schema
9 from voluptuous import Any, Required
11 from gecko_taskgraph import GECKO
13 logger = logging.getLogger(__name__)
16 gecko_parameters_schema = {
17 Required("app_version"): str,
18 Required("backstop"): bool,
19 Required("build_number"): int,
20 Required("enable_always_target"): Any(bool, [str]),
21 Required("hg_branch"): str,
22 Required("message"): str,
23 Required("next_version"): Any(None, str),
24 Required("optimize_strategies"): Any(None, str),
25 Required("phabricator_diff"): Any(None, str),
26 Required("release_enable_emefree"): bool,
27 Required("release_enable_partner_repack"): bool,
28 Required("release_enable_partner_attribution"): bool,
29 Required("release_eta"): Any(None, str),
30 Required("release_history"): {str: dict},
31 Required("release_partners"): Any(None, [str]),
32 Required("release_partner_config"): Any(None, dict),
33 Required("release_partner_build_number"): int,
34 Required("release_type"): str,
35 Required("release_product"): Any(None, str),
36 Required("required_signoffs"): [str],
37 Required("signoff_urls"): dict,
38 Required("test_manifest_loader"): str,
39 Required("try_mode"): Any(None, str),
40 Required("try_options"): Any(None, dict),
41 Required("try_task_config"): dict,
42 Required("version"): str,
46 def get_contents(path):
47 with open(path, "r") as fh:
48 contents = fh.readline().rstrip()
49 return contents
52 def get_version(product_dir="browser"):
53 version_path = os.path.join(GECKO, product_dir, "config", "version_display.txt")
54 return get_contents(version_path)
57 def get_app_version(product_dir="browser"):
58 app_version_path = os.path.join(GECKO, product_dir, "config", "version.txt")
59 return get_contents(app_version_path)
62 def get_defaults(repo_root=None):
63 return {
64 "app_version": get_app_version(),
65 "backstop": False,
66 "base_repository": "https://hg.mozilla.org/mozilla-unified",
67 "build_number": 1,
68 "enable_always_target": ["docker-image"],
69 "head_repository": "https://hg.mozilla.org/mozilla-central",
70 "hg_branch": "default",
71 "message": "",
72 "next_version": None,
73 "optimize_strategies": None,
74 "phabricator_diff": None,
75 "project": "mozilla-central",
76 "release_enable_emefree": False,
77 "release_enable_partner_repack": False,
78 "release_enable_partner_attribution": False,
79 "release_eta": "",
80 "release_history": {},
81 "release_partners": [],
82 "release_partner_config": None,
83 "release_partner_build_number": 1,
84 "release_product": None,
85 "release_type": "nightly",
86 # This refers to the upstream repo rather than the local checkout, so
87 # should be hardcoded to 'hg' even with git-cinnabar.
88 "repository_type": "hg",
89 "required_signoffs": [],
90 "signoff_urls": {},
91 "test_manifest_loader": "default",
92 "try_mode": None,
93 "try_options": None,
94 "try_task_config": {},
95 "version": get_version(),
99 def register_parameters():
100 extend_parameters_schema(gecko_parameters_schema, defaults_fn=get_defaults)