Bug 1154801 - add support in ScriptFactory for gecko based mozharness, for all branches, r=rail
--- a/mozilla-tests/b2g_config.py
+++ b/mozilla-tests/b2g_config.py
@@ -2493,16 +2493,20 @@ for branch in BRANCHES.keys():
BRANCHES[branch]['build_branch'] = branch.title()
BRANCHES[branch]['enable_unittests'] = True
BRANCHES[branch]['fetch_symbols'] = True
BRANCHES[branch]['fetch_release_symbols'] = False
BRANCHES[branch]['pgo_strategy'] = None
BRANCHES[branch]['pgo_platforms'] = []
BRANCHES[branch]['script_repo_manifest'] = "https://hg.mozilla.org/%(repo_path)s/raw-file/%(revision)s/" + \
"testing/mozharness/mozharness.json"
+ # mozharness_archiver_repo_path tells the factory to use a copy of mozharness from within the
+ # gecko tree and also allows us to overwrite which gecko repo to use. Useful for platforms
+ # like Thunderbird
+ BRANCHES[branch]['mozharness_archiver_repo_path'] = '%(repo_path)s'
# The following are exceptions to the defaults
BRANCHES['alder']['branch_name'] = "Alder"
BRANCHES['alder']['repo_path'] = "projects/alder"
BRANCHES['ash']['branch_name'] = "Ash"
BRANCHES['ash']['repo_path'] = "projects/ash"
BRANCHES['cedar']['branch_name'] = "Cedar"
--- a/mozilla-tests/config_common.py
+++ b/mozilla-tests/config_common.py
@@ -14,16 +14,20 @@ def loadDefaultValues(BRANCHES, branch,
BRANCHES[branch]['talos_from_source_code'] = branchConfig.get('talos_from_source_code', True)
BRANCHES[branch]['support_url_base'] = branchConfig.get('support_url_base', 'http://talos-bundles.pvt.build.mozilla.org')
BRANCHES[branch]['enable_unittests'] = branchConfig.get('enable_unittests', True)
BRANCHES[branch]['pgo_strategy'] = branchConfig.get('pgo_strategy', None)
BRANCHES[branch]['pgo_platforms'] = branchConfig.get('pgo_platforms', ['linux', 'linux64', 'win32', 'win64'])
BRANCHES[branch]['mozharness_talos'] = True
BRANCHES[branch]['script_repo_manifest'] = "https://hg.mozilla.org/%(repo_path)s/raw-file/%(revision)s/" + \
"testing/mozharness/mozharness.json"
+ # mozharness_archiver_repo_path tells the factory to use a copy of mozharness from within the
+ # gecko tree and also allows us to overwrite which gecko repo to use. Useful for platforms
+ # like Thunderbird
+ BRANCHES[branch]['mozharness_archiver_repo_path'] = '%(repo_path)s'
def loadCustomTalosSuites(BRANCHES, SUITES, branch, branchConfig):
coallesceJobs = branchConfig.get('coallesce_jobs', True)
BRANCHES[branch]['suites'] = deepcopy(SUITES)
# Check if Talos is enabled, if False, set 0 runs for all suites
if branchConfig.get('enable_talos') is False:
branchConfig['talos_suites'] = {}
--- a/mozilla-tests/thunderbird_config.py
+++ b/mozilla-tests/thunderbird_config.py
@@ -445,16 +445,20 @@ for platform in PLATFORMS.keys():
# wasn't in the list anyways
pass
# Enable mozharness pinning
for _, branch in items_at_least(BRANCHES, 'gecko_version', 30):
branch['script_repo_manifest'] = \
"https://hg.mozilla.org/%(moz_repo_path)s/raw-file/default/" + \
"testing/mozharness/mozharness.json"
+ # mozharness_archiver_repo_path tells the factory to use a copy of mozharness from within the
+ # gecko tree and also allows us to overwrite which gecko repo to use. Useful for platforms
+ # like Thunderbird
+ branch['mozharness_archiver_repo_path'] = '%(moz_repo_path)s'
if __name__ == "__main__":
import sys
import pprint
args = sys.argv[1:]
if len(args) > 0:
--- a/mozilla/b2g_config.py
+++ b/mozilla/b2g_config.py
@@ -1602,16 +1602,20 @@ for name, branch in items_at_least(BRANC
if p in branch['platforms']:
del branch['platforms'][p]
# Enable mozharness pinning
for name, branch in items_at_least(BRANCHES, 'gecko_version', 30):
branch['script_repo_manifest'] = \
"https://hg.mozilla.org/%(repo_path)s/raw-file/%(revision)s/" + \
"testing/mozharness/mozharness.json"
+ # mozharness_archiver_repo_path tells the factory to use a copy of mozharness from within the
+ # gecko tree and also allows us to overwrite which gecko repo to use. Useful for platforms
+ # like Thunderbird
+ branch['mozharness_archiver_repo_path'] = '%(repo_path)s'
# Enable mozharness desktop builds
for name, branch in items_at_least(BRANCHES, 'gecko_version', 39):
# if true, any platform with mozharness_desktop_build in its config
# will use mozharness instead of MozillaBuildFactory
branch['desktop_mozharness_builds_enabled'] = True
# v1.12.20 causes bug 1165727, using v1.12.16 instead
--- a/mozilla/b2g_project_branches.py
+++ b/mozilla/b2g_project_branches.py
@@ -87,17 +87,16 @@ PROJECT_BRANCHES = {
'enable_nightly': True,
},
'dolphin_eng': {
'enable_nightly': True,
},
},
},
'ash': {
- 'mozharness_archiver_endpoint': 'mozharness',
'enable_nightly': True,
'platforms': {
'nexus-4': {
'enable_nightly': True,
},
'nexus-4_eng': {
'enable_nightly': True,
'consider_for_nightly': False,
--- a/mozilla/config.py
+++ b/mozilla/config.py
@@ -36,16 +36,20 @@ GLOBAL_VARS = {
'hg_ssh_key': '~cltbld/.ssh/ffxbld_rsa',
'graph_selector': '/server/collect.cgi',
'compare_locales_repo_path': 'build/compare-locales',
'compare_locales_tag': 'RELEASE_AUTOMATION',
'mozharness_repo_path': 'build/mozharness',
'mozharness_tag': 'production',
'script_repo_manifest': 'https://hg.mozilla.org/%(repo_path)s/raw-file/%(revision)s/' + \
'testing/mozharness/mozharness.json',
+ # mozharness_archiver_repo_path tells the factory to use a copy of mozharness from within the
+ # gecko tree and also allows us to overwrite which gecko repo to use. Useful for platforms
+ # like Thunderbird
+ 'mozharness_archiver_repo_path': '%(repo_path)s',
'use_mozharness_repo_cache': True,
'multi_locale_merge': True,
'default_build_space': 5,
'default_l10n_space': 3,
'default_clobber_time': 24*7, # 1 week
'unittest_suites': [
('mochitest', dict(suite='mochitest-plain', chunkByDir=4, totalChunks=5)),
('mochitest-browser-chrome', ['mochitest-browser-chrome']),
--- a/mozilla/project_branches.py
+++ b/mozilla/project_branches.py
@@ -81,17 +81,16 @@ PROJECT_BRANCHES = {
'enable_nightly': True,
'create_snippet': True,
'create_partial': True,
'use_mozharness_repo_cache': False,
'lock_platforms': True,
'talos_suites': {
'xperf': 1,
},
- 'mozharness_archiver_endpoint': 'mozharness',
},
#'birch': {}, # Bug 1010674
'cedar': {
'enable_perproduct_builds': False,
'mozharness_tag': 'default',
'enable_talos': True,
'talos_suites': {
'xperf': 1,
--- a/mozilla/thunderbird_config.py
+++ b/mozilla/thunderbird_config.py
@@ -1059,16 +1059,20 @@ for branch in branches:
# This does not currently affect Thunderbird builds since mozharness is not
# enabled yet.
# Enable mozharness pinning
for _, branch in items_at_least(BRANCHES, 'gecko_version', 30):
branch['script_repo_manifest'] = \
"https://hg.mozilla.org/%(moz_repo_path)s/raw-file/default/" + \
"testing/mozharness/mozharness.json"
+ # mozharness_archiver_repo_path tells the factory to use a copy of mozharness from within the
+ # gecko tree and also allows us to overwrite which gecko repo to use. Useful for platforms
+ # like Thunderbird
+ branch['mozharness_archiver_repo_path'] = '%(moz_repo_path)s'
if __name__ == "__main__":
import sys
import pprint
args = sys.argv[1:]
if len(args) > 0:
items = dict([(b, BRANCHES[b]) for b in args])