Bug 1124235 - Reload dummy builders. r=nthomas
authorRail Aliiev <rail@mozilla.com>
Wed, 21 Jan 2015 18:20:44 -0500 (2015-01-21)
changeset 4053 52856513ac377351213ef0a1fdb9384c7bb409c1
parent 4052 f74d08aada8def0b9aa3d97a2a2157583642980e
child 4054 28fb7f20d9fb0d1050af915ae31fa711c85c34e5
child 4055 34e410cf73ca2249116294738052a1d8138171ae
push id3358
push userraliiev@mozilla.com
push dateWed, 21 Jan 2015 23:20:51 +0000 (2015-01-21)
reviewersnthomas
bugs1124235
Bug 1124235 - Reload dummy builders. r=nthomas
process/factory.py
process/release.py
--- a/process/factory.py
+++ b/process/factory.py
@@ -94,27 +94,30 @@ class DummyFactory(BuildFactory):
         self.addStep(Dummy(delay))
         if triggers:
             self.addStep(Trigger(
                 schedulerNames=triggers,
                 waitForFinish=False,
             ))
 
 
-def makeDummyBuilder(name, slaves, category=None, delay=0, triggers=None, properties=None):
+def makeDummyBuilder(name, slaves, category=None, delay=0, triggers=None,
+                     properties=None, env=None):
     properties = properties or {}
     builder = {
         'name': name,
         'factory': DummyFactory(delay, triggers),
         'builddir': name,
         'slavenames': slaves,
         'properties': properties,
     }
     if category:
         builder['category'] = category
+    if env:
+        builder['env'] = env.copy()
     return builder
 
 
 def postUploadCmdPrefix(upload_dir=None,
                         branch=None,
                         product=None,
                         revision=None,
                         version=None,
--- a/process/release.py
+++ b/process/release.py
@@ -327,16 +327,21 @@ def generateReleaseBranchObjects(release
 
     builder_env = {
         'BUILDBOT_CONFIGS': '%s%s' % (branchConfig['hgurl'],
                                       branchConfig['config_repo_path']),
         'BUILDBOTCUSTOM': '%s%s' % (branchConfig['hgurl'],
                                     branchConfig['buildbotcustom_repo_path']),
         'CLOBBERER_URL': clobberer_url,
     }
+    # The following variable is used to make buildbot reload dummy builders
+    dummy_builder_env = {
+        'DUMMY_RELEASE_PREFIX': releasePrefix(),
+    }
+
 
     if use_mock('linux'):
         unix_slaves = mock_slaves
     if releaseConfig.get('enable_repo_setup'):
         if not releaseConfig.get('skip_repo_setup'):
             clone_repositories = dict()
             # The repo_setup builder only needs to the repoPath, so we only
             # give it that
@@ -393,16 +398,17 @@ def generateReleaseBranchObjects(release
                 name=builderPrefix(
                     '%s_repo_setup' % releaseConfig['productName']),
                 slaves=all_slaves,
                 category=builderPrefix(''),
                 properties={
                     'platform': None,
                     'branch': 'release-%s' % sourceRepoInfo['name'],
                 },
+                env=dummy_builder_env,
             ))
 
     dummy_tag_builders = []
     if not releaseConfig.get('skip_tag'):
         pf = branchConfig['platforms']['linux']
         tag_env = builder_env.copy()
         if pf['env'].get('PATH'):
             tag_env['PATH'] = pf['env']['PATH']
@@ -484,16 +490,17 @@ def generateReleaseBranchObjects(release
                             name=builderPrefix('%s_tag_%s' %
                                                releaseConfig['productName'], dummy),
                             slaves=all_slaves,
                             category=builderPrefix(''),
                             properties={
                                 'platform': None,
                                 'branch': 'release-%s' % sourceRepoInfo['name'],
                             },
+                            env=dummy_builder_env,
                             ))
 
     if not releaseConfig.get('skip_source'):
         pf = branchConfig['platforms']['linux']
         mozconfig = 'linux/%s/release' % sourceRepoInfo['name']
         platform_env = pf['env'].copy()
         platform_env['COMM_REV'] = releaseTag
         platform_env['MOZILLA_REV'] = releaseTag
@@ -604,26 +611,28 @@ def generateReleaseBranchObjects(release
         builders.append(makeDummyBuilder(
             name=builderPrefix('%s_source' % releaseConfig['productName']),
             slaves=all_slaves,
             category=builderPrefix(''),
             properties={
                 'platform': None,
                 'branch': 'release-%s' % sourceRepoInfo['name'],
             },
+            env=dummy_builder_env,
         ))
         if releaseConfig.get('xulrunnerPlatforms'):
             builders.append(makeDummyBuilder(
                 name=builderPrefix('xulrunner_source'),
                 slaves=all_slaves,
                 category=builderPrefix(''),
                 properties={
                     'platform': None,
                     'branch': 'release-%s' % sourceRepoInfo['name'],
                 },
+                env=dummy_builder_env,
             ))
             xr_deliverables_builders.append(builderPrefix('xulrunner_source'))
 
     mozillaDir = None
     mozillaSrcDir = None
     if 'mozilla_dir' in releaseConfig:
         mozillaDir = releaseConfig['mozilla_dir']
     if 'mozilla_srcdir' in releaseConfig:
@@ -759,16 +768,17 @@ def generateReleaseBranchObjects(release
                 name=builderPrefix('%s_build' % platform),
                 slaves=all_slaves,
                 category=builderPrefix(''),
                 properties={
                     'platform': platform,
                     'branch': 'release-%s' % sourceRepoInfo['name'],
                     'event_group': 'build',
                 },
+                env=dummy_builder_env,
             ))
         updates_upstream_builders.append(builderPrefix('%s_build' % platform))
         deliverables_builders.append(builderPrefix('%s_build' % platform))
 
         if platform in releaseConfig['l10nPlatforms']:
             env = builder_env.copy()
             env.update(pf['env'])
             env['MOZ_UPDATE_CHANNEL'] = releaseChannel
@@ -924,16 +934,17 @@ def generateReleaseBranchObjects(release
                 name=builderPrefix('repack_complete', platform),
                 slaves=all_slaves,
                 category=builderPrefix(''),
                 properties={
                     'platform': platform,
                     'branch': 'release-%s' % sourceRepoInfo['name'],
                     'event_group': 'repack',
                 },
+                env=dummy_builder_env,
             ))
             updates_upstream_builders.append(
                 builderPrefix('repack_complete', platform))
             deliverables_builders.append(
                 builderPrefix('repack_complete', platform))
 
         if platform in releaseConfig['unittestPlatforms']:
             mochitestLeakThreshold = pf.get('mochitest_leak_threshold', None)
@@ -1034,16 +1045,17 @@ def generateReleaseBranchObjects(release
                 name=builderPrefix('xulrunner_%s_build' % platform),
                 slaves=all_slaves,
                 category=builderPrefix(''),
                 properties={
                     'platform': platform,
                     'branch': 'release-%s' % sourceRepoInfo['name'],
                     'product': 'xulrunner',
                 },
+                env=dummy_builder_env,
             ))
         xr_deliverables_builders.append(
             builderPrefix('xulrunner_%s_build' % platform))
 
     if releaseConfig['doPartnerRepacks']:
         for platform in releaseConfig.get('partnerRepackPlatforms',
                                           releaseConfig['l10nPlatforms']):
             slaves = None
@@ -1301,16 +1313,17 @@ def generateReleaseBranchObjects(release
             name=builderPrefix('%s_updates' % releaseConfig['productName']),
             slaves=all_slaves,
             category=builderPrefix(''),
             properties={
                 'platform': None,
                 'branch': 'release-%s' % sourceRepoInfo['name'],
                 'event_group': 'update',
             },
+            env=dummy_builder_env,
         ))
         post_signing_builders.append(builderPrefix('%s_updates' % releaseConfig['productName']))
 
     for platform in sorted(releaseConfig.get('verifyConfigs', {}).keys()):
         vpf = branchConfig['platforms'][platform]
         for n, builderName in updateVerifyBuilders(platform).iteritems():
             uv_factory = ScriptFactory(
                 scriptRepo=tools_repo,
@@ -1592,39 +1605,42 @@ def generateReleaseBranchObjects(release
             name=builderPrefix('%s_ready_for_releasetest_testing' % releaseConfig['productName']),
             slaves=all_slaves,
             category=builderPrefix(''),
             properties={
                 'platform': None,
                 'branch': 'release-%s' % sourceRepoInfo['name'],
                 'event_group': 'releasetest',
             },
+            env=dummy_builder_env,
         ))
         important_builders.append(
             builderPrefix('%s_ready_for_releasetest_testing' % releaseConfig['productName']))
 
         builders.append(makeDummyBuilder(
             name=builderPrefix('%s_almost_ready_for_release' % releaseConfig['productName']),
             slaves=all_slaves,
             category=builderPrefix(''),
             properties={
                 'platform': None,
                 'branch': 'release-%s' % sourceRepoInfo['name'],
             },
+            env=dummy_builder_env,
         ))
 
         builders.append(makeDummyBuilder(
             name=builderPrefix('%s_ready_for_release' % releaseConfig['productName']),
             slaves=all_slaves,
             category=builderPrefix(''),
             properties={
                 'platform': None,
                 'branch': 'release-%s' % sourceRepoInfo['name'],
                 'event_group': 'release',
             },
+            env=dummy_builder_env,
         ))
         important_builders.append(builderPrefix('%s_ready_for_release' % releaseConfig['productName']))
 
     if not releaseConfig.get('disableBouncerEntries'):
         extra_args = ["-c", releaseConfig["bouncer_submitter_config"],
                       "--revision", releaseTag,
                       "--repo", sourceRepoInfo['path'],
                       "--version", releaseConfig['version'],
@@ -1926,16 +1942,17 @@ def generateReleaseBranchObjects(release
             name=builderPrefix(
                 '%s_reset_schedulers' % releaseConfig['productName']),
             slaves=all_slaves,
             category=builderPrefix(''),
             properties={
                 'platform': None,
                 'branch': 'release-%s' % sourceRepoInfo['name'],
             },
+            env=dummy_builder_env,
         ))
 
     # Separate email messages per list. Mailman doesn't try to avoid duplicate
     # messages in this case. See Bug 635527 for the details.
     tagging_started_recipients = releaseConfig['AllRecipients'][:]
     if not releaseConfig.get('skip_tag'):
         tagging_started_recipients.extend(releaseConfig['ImportantRecipients'])
     for recipient in tagging_started_recipients: