Bug 1154801 - add support in ScriptFactory for gecko based mozharness, for all branches, r=rail
authorJordan Lund <jlund@mozilla.com>
Fri, 17 Jul 2015 10:05:58 -0700
changeset 12131 acbe4bb58ce6142e12d9bd8cd47b960fbcc2fcc0
parent 12130 14b1bb93fec08740a60617809669f189282765a2
child 12132 1a5a7c94b2c01d43fa53f74e691f0725aa685360
child 13305 64511e3d571ff2affb94fac83c898767e84da743
push id4
push usercmanchester@mozilla.com
push dateMon, 31 Aug 2015 22:24:29 +0000
reviewersrail
bugs1154801
Bug 1154801 - add support in ScriptFactory for gecko based mozharness, for all branches, r=rail
mozilla-tests/b2g_config.py
mozilla-tests/config_common.py
mozilla-tests/thunderbird_config.py
mozilla/b2g_config.py
mozilla/b2g_project_branches.py
mozilla/config.py
mozilla/project_branches.py
mozilla/thunderbird_config.py
--- 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])