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/.
8 from taskgraph
.parameters
import extend_parameters_schema
9 from voluptuous
import (
14 from gecko_taskgraph
import GECKO
16 logger
= logging
.getLogger(__name__
)
19 gecko_parameters_schema
= {
20 Required("app_version"): str,
21 Required("backstop"): bool,
22 Required("build_number"): int,
23 Required("hg_branch"): str,
24 Required("message"): str,
25 Required("next_version"): Any(None, str),
26 Required("optimize_strategies"): Any(None, str),
27 Required("phabricator_diff"): Any(None, str),
28 Required("release_enable_emefree"): bool,
29 Required("release_enable_partner_repack"): bool,
30 Required("release_enable_partner_attribution"): bool,
31 Required("release_eta"): Any(None, str),
32 Required("release_history"): {str: dict},
33 Required("release_partners"): Any(None, [str]),
34 Required("release_partner_config"): Any(None, dict),
35 Required("release_partner_build_number"): int,
36 Required("release_type"): str,
37 Required("release_product"): Any(None, str),
38 Required("required_signoffs"): [str],
39 Required("signoff_urls"): dict,
40 Required("test_manifest_loader"): str,
41 Required("try_mode"): Any(None, str),
42 Required("try_options"): Any(None, dict),
43 Required("try_task_config"): dict,
44 Required("version"): str,
48 def get_contents(path
):
49 with
open(path
, "r") as fh
:
50 contents
= fh
.readline().rstrip()
54 def get_version(product_dir
="browser"):
55 version_path
= os
.path
.join(GECKO
, product_dir
, "config", "version_display.txt")
56 return get_contents(version_path
)
59 def get_app_version(product_dir
="browser"):
60 app_version_path
= os
.path
.join(GECKO
, product_dir
, "config", "version.txt")
61 return get_contents(app_version_path
)
64 def get_defaults(repo_root
=None):
66 "app_version": get_app_version(),
68 "base_repository": "https://hg.mozilla.org/mozilla-unified",
70 "head_repository": "https://hg.mozilla.org/mozilla-central",
71 "hg_branch": "default",
74 "optimize_strategies": None,
75 "phabricator_diff": None,
76 "project": "mozilla-central",
77 "release_enable_emefree": False,
78 "release_enable_partner_repack": False,
79 "release_enable_partner_attribution": False,
81 "release_history": {},
82 "release_partners": [],
83 "release_partner_config": None,
84 "release_partner_build_number": 1,
85 "release_product": None,
86 "release_type": "nightly",
87 # This refers to the upstream repo rather than the local checkout, so
88 # should be hardcoded to 'hg' even with git-cinnabar.
89 "repository_type": "hg",
90 "required_signoffs": [],
92 "test_manifest_loader": "default",
95 "try_task_config": {},
96 "version": get_version(),
100 def register_parameters():
101 extend_parameters_schema(gecko_parameters_schema
, defaults_fn
=get_defaults
)