--- 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: