Skip to content

Instantly share code, notes, and snippets.

@rail
Created January 12, 2012 19:18
Show Gist options
  • Save rail/1602483 to your computer and use it in GitHub Desktop.
Save rail/1602483 to your computer and use it in GitHub Desktop.
diff -u b/process/factory.py b/process/factory.py
--- b/process/factory.py
+++ b/process/factory.py
@@ -380,7 +380,7 @@
clobberURL=None, clobberTime=None, buildsBeforeReboot=None,
branchName=None, baseWorkDir='build', hashType='sha512',
baseMirrorUrls=None, baseBundleUrls=None, signingServers=None,
- enableSigning=False, env={}, **kwargs):
+ enableSigning=True, env={}, **kwargs):
BuildFactory.__init__(self, **kwargs)
if hgHost.endswith('/'):
@@ -407,6 +407,11 @@
else:
self.branchName = self.getRepoName(self.repository)
+ if self.signingServers and self.enableSigning:
+ self.signing_command = get_signing_cmd(
+ self.signingServers, self.env.get('PYTHON26'))
+ self.env['MOZ_SIGN_CMD'] = WithProperties(self.signing_command)
+
self.addStep(OutputStep(
name='get_buildername',
data=WithProperties('Building on: %(slavename)s'),
@@ -888,10 +893,6 @@
self.logBaseUrl = 'http://%s/pub/mozilla.org/%s/%s' % \
( self.stageServer, self.stageProduct, self.logUploadDir)
- if self.signingServers:
- self.env['MOZ_SIGN_CMD'] = WithProperties(get_signing_cmd(
- self.signingServers, self.env.get('PYTHON26')))
-
# Need to override toolsdir as set by MozillaBuildFactory because
# we need Windows-style paths.
if self.platform.startswith('win'):
@@ -1021,7 +1022,7 @@
self.addSourceSteps()
self.addConfigSteps()
self.addDoBuildSteps()
- if self.signingServers:
+ if self.signingServers and self.enableSigning:
self.addGetTokenSteps()
if self.doBuildAnalysis:
self.addBuildAnalysisSteps()
@@ -2746,12 +2747,11 @@
haltOnFailure=True,
))
self.UPLOAD_EXTRA_FILES.append('%s/%s' % (update_dir, partial_mar_name))
- if self.enableSigning:
- sign_cmd = get_signing_cmd(
- self.signingServers, updateEnv.get('PYTHON26'))
+ if self.enableSigning and self.signingServers:
partial_mar_path = '"%s/dist/%s/%s"' % \
(self.absMozillaObjDir, update_dir, partial_mar_name)
- cmd = '%s -f gpg -f mar "%s"' % (sign_cmd, partial_mar_path)
+ cmd = '%s -f gpg -f mar "%s"' % (self.signing_command,
+ partial_mar_path)
self.addStep(ShellCommand(
name='sign_partial_mar',
description=['sign', 'partial', 'mar'],
@@ -2797,7 +2797,7 @@
version=self.version,
buildNumber=str(self.buildNumber),
as_list=False)
- if self.enableSigning:
+ if self.enableSigning and self.signingServers:
uploadArgs['signed'] = True
upload_vars = []
@@ -3001,10 +3001,6 @@
self.configRepo = self.getRepository(self.configRepoPath,
kwargs['hgHost'])
- if self.signingServers:
- self.env['MOZ_SIGN_CMD'] = WithProperties(get_signing_cmd(
- self.signingServers, env.get('PYTHON26')))
-
self.addStep(SetBuildProperty(
property_name='tree',
value=self.tree,
@@ -3091,7 +3087,7 @@
self.tinderboxPrintRevisions()
self.compareLocalesSetup()
self.compareLocales()
- if self.signingServers:
+ if self.signingServers and self.enableSigning:
self.addGetTokenSteps()
self.doRepack()
self.doUpload()
@@ -4476,13 +4472,12 @@
haltOnFailure=True
))
files = [self.bundleFile, self.sourceTarball]
- if self.enableSigning:
+ if self.enableSigning and self.signingServers:
self.addGetTokenSteps()
# use a copy of files variable to prevent endless loops
for f in list(files):
- signingcmd = WithProperties(get_signing_cmd(
- self.signingServers, self.env.get('PYTHON26')) +
- ' --formats gpg "%s"' % f)
+ signingcmd = WithProperties(
+ '%s --formats gpg "%s"' % (self.signing_command, f))
self.addStep(ShellCommand(
name='sign_file',
command=signingcmd,
@@ -8039,9 +8034,7 @@
))
def doPartnerRepacks(self):
- if self.enableSigning:
- self.env['MOZ_SIGN_CMD'] = WithProperties(get_signing_cmd(
- self.signingServers,self.env.get('PYTHON26')))
+ if self.enableSigning and self.signingServers:
self.extraRepackArgs.append('--signed')
self.addGetTokenSteps()
self.addStep(RepackPartners(
@@ -8076,7 +8069,7 @@
haltOnFailure=True
))
- if not self.enableSigning:
+ if not self.enableSigning or not self.signingServers:
for platform in self.platformList:
self.addStep(ShellCommand(
name='create_partner_build_directory',
diff -u b/process/release.py b/process/release.py
--- b/process/release.py
+++ b/process/release.py
@@ -82,12 +82,12 @@
all_slaves = [x for x in set(all_slaves)]
signedPlatforms = ()
- if not releaseConfig.get('enableSigning'):
+ if not releaseConfig.get('enableSigningAtBuildTime', True):
signedPlatforms = releaseConfig.get('signedPlatforms', ('win32',))
if secrets is None:
secrets = {}
signingServers = secrets.get('release-signing')
- if releaseConfig.get('enableSigning'):
+ if releaseConfig.get('enableSigningAtBuildTime', True):
assert signingServers, 'Please provide a valid list of signing servers'
def builderPrefix(s, platform=None):
@@ -292,212 +292,6 @@
post_deliverables_builders = []
post_antivirus_builders = []
- ##### Change sources and Schedulers
-
- if not releaseConfig.get('enableSigning') and \
- releaseConfig['productName'] == 'firefox':
- change_source.append(UrlPoller(
- branch=builderPrefix("post_signing"),
- url='%s/win32_signing_build%s.log' % (
- makeCandidatesDir(
- releaseConfig['productName'],
- releaseConfig['version'],
- releaseConfig['buildNumber'],
- protocol='http',
- server=releaseConfig['ftpServer']),
- releaseConfig['buildNumber']),
- pollInterval=60*10,
- ))
- signing_done_scheduler = Scheduler(
- name=builderPrefix('signing_done'),
- treeStableTimer=0,
- branch=builderPrefix('post_signing'),
- builderNames=[builderPrefix('signing_done')]
- )
- schedulers.append(signing_done_scheduler)
- notify_builders.append(builderPrefix('signing_done'))
-
- if releaseConfig['productName'] == 'fennec':
- locale = 'en-US'
- candidatesDir = makeCandidatesDir(
- releaseConfig['productName'],
- releaseConfig['version'],
- releaseConfig['buildNumber'],
- protocol='http',
- server=releaseConfig['ftpServer'])
- enUS_signed_apk_url = '%s%s/%s/%s-%s.%s.android-arm.apk' % \
- (candidatesDir,
- buildbot2ftp('linux-android'),
- locale, releaseConfig['productName'], releaseConfig['version'],
- locale)
- change_source.append(UrlPoller(
- branch=builderPrefix('android_post_signing'),
- url=enUS_signed_apk_url,
- pollInterval=60*10
- ))
- if branchConfig['platforms']['linux-android'].get('multi_locale'):
- locale = 'multi'
- signed_apk_url = '%s%s/%s/%s-%s.%s.android-arm.apk' % \
- (candidatesDir,
- buildbot2ftp('linux-android'),
- locale,
- releaseConfig['productName'],
- releaseConfig['version'],
- locale)
- change_source.append(UrlPoller(
- branch=builderPrefix('android_post_signing'),
- url=signed_apk_url,
- pollInterval=60*10
- ))
-
- reset_schedulers_scheduler = Scheduler(
- name=builderPrefix('%s_reset_schedulers' % releaseConfig['productName']),
- branch=sourceRepoInfo['path'],
- treeStableTimer=None,
- builderNames=[builderPrefix(
- '%s_reset_schedulers' % releaseConfig['productName'])],
- fileIsImportant=lambda c: not isHgPollerTriggered(c,
- branchConfig['hgurl'])
- )
- schedulers.append(reset_schedulers_scheduler)
- if releaseConfig.get('enable_repo_setup'):
- repo_setup_scheduler = Dependent(
- name=builderPrefix('%s_repo_setup' % releaseConfig['productName']),
- upstream=reset_schedulers_scheduler,
- builderNames=[builderPrefix(
- '%s_repo_setup' % releaseConfig['productName'])],
- )
- schedulers.append(repo_setup_scheduler)
- tag_scheduler = Dependent(
- name=builderPrefix('%s_tag' % releaseConfig['productName']),
- upstream=repo_setup_scheduler,
- builderNames=[builderPrefix(
- '%s_tag' % releaseConfig['productName'])],
- )
- if not releaseConfig.get('skip_release_download'):
- release_downloader_scheduler = Scheduler(
- name=builderPrefix(
- '%s_release_downloader' % releaseConfig['productName']),
- branch=sourceRepoInfo['path'],
- treeStableTimer=None,
- builderNames=[builderPrefix(
- '%s_release_downloader' % releaseConfig['productName'])],
- fileIsImportant=lambda c: changeContainsProduct(c,
- releaseConfig['productName'])
- )
- schedulers.append(release_downloader_scheduler)
- else:
- tag_scheduler = Dependent(
- name=builderPrefix('%s_tag' % releaseConfig['productName']),
- upstream=reset_schedulers_scheduler,
- builderNames=[builderPrefix(
- '%s_tag' % releaseConfig['productName'])],
- )
- schedulers.append(tag_scheduler)
-
- tag_downstream = [builderPrefix('%s_source' % releaseConfig['productName'])]
-
- if releaseConfig['buildNumber'] == 1 \
- and not releaseConfig.get('disableBouncerEntries'):
- tag_downstream.append(builderPrefix('bouncer_submitter'))
-
- if releaseConfig['doPartnerRepacks']:
- tag_downstream.append(builderPrefix('euballot_bouncer_submitter'))
-
- if releaseConfig.get('xulrunnerPlatforms'):
- tag_downstream.append(builderPrefix('xulrunner_source'))
-
- for platform in releaseConfig['enUSPlatforms']:
- tag_downstream.append(builderPrefix('%s_build' % platform))
- notify_builders.append(builderPrefix('%s_build' % platform))
- if platform in releaseConfig['l10nPlatforms']:
- repack_scheduler = Triggerable(
- name=builderPrefix('%s_repack' % platform),
- builderNames=l10nBuilders(platform).values(),
- )
- schedulers.append(repack_scheduler)
- repack_complete_scheduler = Dependent(
- name=builderPrefix('%s_repack_complete' % platform),
- upstream=repack_scheduler,
- builderNames=[builderPrefix('repack_complete', platform),]
- )
- schedulers.append(repack_complete_scheduler)
- notify_builders.append(builderPrefix('repack_complete', platform))
-
- for platform in releaseConfig.get('xulrunnerPlatforms', []):
- tag_downstream.append(builderPrefix('xulrunner_%s_build' % platform))
-
- DependentID = makePropertiesScheduler(Dependent, [buildIDSchedFunc, buildUIDSchedFunc])
-
- schedulers.append(
- DependentID(
- name=builderPrefix('%s_build' % releaseConfig['productName']),
- upstream=tag_scheduler,
- builderNames=tag_downstream,
- ))
-
- if releaseConfig.get('majorUpdateRepoPath'):
- majorUpdateBuilderNames = []
- for platform in sorted(releaseConfig['majorUpdateVerifyConfigs'].keys()):
- majorUpdateBuilderNames.extend(
- majorUpdateVerifyBuilders(platform).values())
- major_update_verify_scheduler = Triggerable(
- name=builderPrefix('major_update_verify'),
- builderNames=majorUpdateBuilderNames
- )
- schedulers.append(major_update_verify_scheduler)
-
- for platform in releaseConfig['unittestPlatforms']:
- platform_test_builders = []
- for suites_name, suites in branchConfig['unittest_suites']:
- platform_test_builders.extend(
- generateTestBuilderNames(
- builderPrefix('%s_test' % platform),
- suites_name, suites))
-
- s = Scheduler(
- name=builderPrefix('%s-opt-unittest' % platform),
- treeStableTimer=0,
- branch=builderPrefix('%s-opt-unittest' % platform),
- builderNames=platform_test_builders,
- )
- schedulers.append(s)
-
- if not releaseConfig.get('disableBouncerEntries'):
- mirror_scheduler1 = TriggerBouncerCheck(
- name=builderPrefix('ready-for-rel-test'),
- configRepo=config_repo,
- minUptake=releaseConfig.get('releasetestUptake', 3),
- builderNames=[builderPrefix('ready_for_releasetest_testing')] + \
- [builderPrefix('final_verification', platform)
- for platform in releaseConfig.get('verifyConfigs', {}).keys()],
- username=BuildSlaves.tuxedoUsername,
- password=BuildSlaves.tuxedoPassword)
-
- schedulers.append(mirror_scheduler1)
-
- mirror_scheduler2 = TriggerBouncerCheck(
- name=builderPrefix('ready-for-release'),
- configRepo=config_repo,
- minUptake=releaseConfig.get('releaseUptake', 45000),
- builderNames=[builderPrefix('ready_for_release')],
- username=BuildSlaves.tuxedoUsername,
- password=BuildSlaves.tuxedoPassword)
-
- schedulers.append(mirror_scheduler2)
-
- if releaseConfig['productName'] == 'fennec':
- android_signature_verification_scheduler = Scheduler(
- name=builderPrefix('android_signature_verification_scheduler'),
- branch=builderPrefix('android_post_signing'),
- treeStableTimer=None,
- builderNames=[builderPrefix('android_signature_verification')],
- )
- schedulers.append(android_signature_verification_scheduler)
- # Purposely, there is not a Scheduler for ReleaseFinalVerification
- # This is a step run very shortly before release, and is triggered manually
- # from the waterfall
-
##### Builders
builder_env = {
'BUILDBOT_CONFIGS': '%s%s' % (branchConfig['hgurl'],
@@ -646,7 +440,7 @@
configRepoPath=branchConfig['config_repo_path'],
configSubDir=branchConfig['config_subdir'],
signingServers=signingServers,
- enableSigning=releaseConfig.get('enableSigning', False),
+ enableSigning=releaseConfig.get('enableSigningAtBuildTime', True),
)
builders.append({
@@ -689,7 +483,7 @@
configRepoPath=branchConfig['config_repo_path'],
configSubDir=branchConfig['config_subdir'],
signingServers=signingServers,
- enableSigning=releaseConfig.get('enableSigning', False),
+ enableSigning=False,
)
builders.append({
@@ -801,8 +595,8 @@
enableUpdatePackaging=enableUpdatePackaging,
mozconfigBranch=releaseTag,
signingServers=signingServers,
- enableSigning=releaseConfig.get('enableSigning', False),
- createPartial=releaseConfig.get('generatePartials', False),
+ enableSigning=releaseConfig.get('enableSigningAtBuildTime', True),
+ createPartial=releaseConfig.get('enablePartialMarsAtBuildTime', True),
)
builders.append({
@@ -834,12 +628,12 @@
if not releaseConfig.get('disableStandaloneRepacks'):
extra_args = [platform, branchConfigFile]
- if releaseConfig.get('generatePartials'):
+ if releaseConfig.get('enablePartialMarsAtBuildTime', True):
extra_args.append('generatePartials')
standalone_factory = SigningScriptFactory(
signingServers=signingServers,
env=env,
- enableSigning=releaseConfig.get('enableSigning'),
+ enableSigning=releaseConfig.get('enableSigningAtBuildTime', True),
scriptRepo=tools_repo,
interpreter='bash',
scriptName='scripts/l10n/standalone_repacks.sh',
@@ -869,12 +663,12 @@
else:
extra_args = [platform, branchConfigFile, str(l10nChunks),
str(n)]
- if releaseConfig.get('generatePartials'):
+ if releaseConfig.get('enablePartialMarsAtBuildTime', True):
extra_args.append('generatePartials')
repack_factory = SigningScriptFactory(
signingServers=signingServers,
env=env,
- enableSigning=releaseConfig.get('enableSigning'),
+ enableSigning=releaseConfig.get('enableSigningAtBuildTime', True),
scriptRepo=tools_repo,
interpreter='bash',
scriptName='scripts/l10n/release_repacks.sh',
@@ -963,6 +757,7 @@
buildNumber=releaseConfig['buildNumber'],
clobberURL=branchConfig['base_clobber_url'],
packageSDK=True,
+ enableSigning=False,
)
builders.append({
'name': builderPrefix('xulrunner_%s_build' % platform),
@@ -1001,7 +796,7 @@
stageUsername=branchConfig['stage_username'],
stageSshKey=branchConfig['stage_ssh_key'],
signingServers=signingServers,
- enableSigning=releaseConfig.get('enableSigning', False),
+ enableSigning=releaseConfig.get('enableSigningAtBuildTime', True),
)
if 'macosx64' in branchConfig['platforms']:
@@ -1070,7 +865,7 @@
post_signing_builders.append(
builderPrefix('l10n_verification', platform))
- if not releaseConfig.get('enableSigning') and \
+ if not releaseConfig.get('enableSigningAtBuildTime', True) and \
releaseConfig['productName'] == 'firefox':
builders.append(makeDummyBuilder(
name=builderPrefix('signing_done'),
@@ -1078,7 +873,7 @@
category=builderPrefix('')
))
- if releaseConfig.get('enableSigning') and \
+ if releaseConfig.get('enableSigningAtBuildTime', True) and \
releaseConfig['productName'] == 'firefox':
pf = branchConfig['platforms']['linux']
env = builder_env.copy()
@@ -1109,7 +904,7 @@
'release_config': releaseConfigFile,
}
})
- post_signing_builders.append(
+ post_deliverables_builders.append(
builderPrefix('%s_checksums' % releaseConfig['productName']))
if releaseConfig.get('verifyConfigs') and \
@@ -1158,7 +953,7 @@
schema=releaseConfig.get('snippetSchema', None),
useBetaChannelForRelease=releaseConfig.get('useBetaChannelForRelease', False),
signingServers=signingServers,
- useChecksums=releaseConfig.get('generatePartials'),
+ useChecksums=releaseConfig.get('enablePartialMarsAtBuildTime', True),
)
builders.append({
@@ -1174,8 +969,8 @@
})
post_signing_builders.append(builderPrefix('updates'))
notify_builders.append(builderPrefix('updates'))
- if not (releaseConfig.get('enableSigning') and \
- releaseConfig.get('generatePartials')):
+ if not releaseConfig.get('enableSigningAtBuildTime', True) or \
+ not releaseConfig.get('enablePartialMarsAtBuildTime', True):
deliverables_builders.append(builderPrefix('updates'))
elif releaseConfig.get('verifyConfigs'):
builders.append(makeDummyBuilder(
@@ -1523,7 +1318,210 @@
},
})
- # AggregatingSchedulers
+
+ ##### Change sources and Schedulers
+
+ if not releaseConfig.get('enableSigningAtBuildTime', True) and \
+ releaseConfig['productName'] == 'firefox':
+ change_source.append(UrlPoller(
+ branch=builderPrefix("post_signing"),
+ url='%s/win32_signing_build%s.log' % (
+ makeCandidatesDir(
+ releaseConfig['productName'],
+ releaseConfig['version'],
+ releaseConfig['buildNumber'],
+ protocol='http',
+ server=releaseConfig['ftpServer']),
+ releaseConfig['buildNumber']),
+ pollInterval=60*10,
+ ))
+ signing_done_scheduler = Scheduler(
+ name=builderPrefix('signing_done'),
+ treeStableTimer=0,
+ branch=builderPrefix('post_signing'),
+ builderNames=[builderPrefix('signing_done')]
+ )
+ schedulers.append(signing_done_scheduler)
+ notify_builders.append(builderPrefix('signing_done'))
+
+ if releaseConfig['productName'] == 'fennec':
+ locale = 'en-US'
+ candidatesDir = makeCandidatesDir(
+ releaseConfig['productName'],
+ releaseConfig['version'],
+ releaseConfig['buildNumber'],
+ protocol='http',
+ server=releaseConfig['ftpServer'])
+ enUS_signed_apk_url = '%s%s/%s/%s-%s.%s.android-arm.apk' % \
+ (candidatesDir,
+ buildbot2ftp('linux-android'),
+ locale, releaseConfig['productName'], releaseConfig['version'],
+ locale)
+ change_source.append(UrlPoller(
+ branch=builderPrefix('android_post_signing'),
+ url=enUS_signed_apk_url,
+ pollInterval=60*10
+ ))
+ if branchConfig['platforms']['linux-android'].get('multi_locale'):
+ locale = 'multi'
+ signed_apk_url = '%s%s/%s/%s-%s.%s.android-arm.apk' % \
+ (candidatesDir,
+ buildbot2ftp('linux-android'),
+ locale,
+ releaseConfig['productName'],
+ releaseConfig['version'],
+ locale)
+ change_source.append(UrlPoller(
+ branch=builderPrefix('android_post_signing'),
+ url=signed_apk_url,
+ pollInterval=60*10
+ ))
+
+ reset_schedulers_scheduler = Scheduler(
+ name=builderPrefix('%s_reset_schedulers' % releaseConfig['productName']),
+ branch=sourceRepoInfo['path'],
+ treeStableTimer=None,
+ builderNames=[builderPrefix(
+ '%s_reset_schedulers' % releaseConfig['productName'])],
+ fileIsImportant=lambda c: not isHgPollerTriggered(c,
+ branchConfig['hgurl'])
+ )
+ schedulers.append(reset_schedulers_scheduler)
+ if releaseConfig.get('enable_repo_setup'):
+ repo_setup_scheduler = Dependent(
+ name=builderPrefix('%s_repo_setup' % releaseConfig['productName']),
+ upstream=reset_schedulers_scheduler,
+ builderNames=[builderPrefix(
+ '%s_repo_setup' % releaseConfig['productName'])],
+ )
+ schedulers.append(repo_setup_scheduler)
+ tag_scheduler = Dependent(
+ name=builderPrefix('%s_tag' % releaseConfig['productName']),
+ upstream=repo_setup_scheduler,
+ builderNames=[builderPrefix(
+ '%s_tag' % releaseConfig['productName'])],
+ )
+ if not releaseConfig.get('skip_release_download'):
+ release_downloader_scheduler = Scheduler(
+ name=builderPrefix(
+ '%s_release_downloader' % releaseConfig['productName']),
+ branch=sourceRepoInfo['path'],
+ treeStableTimer=None,
+ builderNames=[builderPrefix(
+ '%s_release_downloader' % releaseConfig['productName'])],
+ fileIsImportant=lambda c: changeContainsProduct(c,
+ releaseConfig['productName'])
+ )
+ schedulers.append(release_downloader_scheduler)
+ else:
+ tag_scheduler = Dependent(
+ name=builderPrefix('%s_tag' % releaseConfig['productName']),
+ upstream=reset_schedulers_scheduler,
+ builderNames=[builderPrefix(
+ '%s_tag' % releaseConfig['productName'])],
+ )
+ schedulers.append(tag_scheduler)
+
+ tag_downstream = [builderPrefix('%s_source' % releaseConfig['productName'])]
+
+ if releaseConfig['buildNumber'] == 1 \
+ and not releaseConfig.get('disableBouncerEntries'):
+ tag_downstream.append(builderPrefix('bouncer_submitter'))
+
+ if releaseConfig['doPartnerRepacks']:
+ tag_downstream.append(builderPrefix('euballot_bouncer_submitter'))
+
+ if releaseConfig.get('xulrunnerPlatforms'):
+ tag_downstream.append(builderPrefix('xulrunner_source'))
+
+ for platform in releaseConfig['enUSPlatforms']:
+ tag_downstream.append(builderPrefix('%s_build' % platform))
+ notify_builders.append(builderPrefix('%s_build' % platform))
+ if platform in releaseConfig['l10nPlatforms']:
+ repack_scheduler = Triggerable(
+ name=builderPrefix('%s_repack' % platform),
+ builderNames=l10nBuilders(platform).values(),
+ )
+ schedulers.append(repack_scheduler)
+ repack_complete_scheduler = Dependent(
+ name=builderPrefix('%s_repack_complete' % platform),
+ upstream=repack_scheduler,
+ builderNames=[builderPrefix('repack_complete', platform),]
+ )
+ schedulers.append(repack_complete_scheduler)
+ notify_builders.append(builderPrefix('repack_complete', platform))
+
+ for platform in releaseConfig.get('xulrunnerPlatforms', []):
+ tag_downstream.append(builderPrefix('xulrunner_%s_build' % platform))
+
+ DependentID = makePropertiesScheduler(Dependent, [buildIDSchedFunc, buildUIDSchedFunc])
+
+ schedulers.append(
+ DependentID(
+ name=builderPrefix('%s_build' % releaseConfig['productName']),
+ upstream=tag_scheduler,
+ builderNames=tag_downstream,
+ ))
+
+ if releaseConfig.get('majorUpdateRepoPath'):
+ majorUpdateBuilderNames = []
+ for platform in sorted(releaseConfig['majorUpdateVerifyConfigs'].keys()):
+ majorUpdateBuilderNames.extend(
+ majorUpdateVerifyBuilders(platform).values())
+ major_update_verify_scheduler = Triggerable(
+ name=builderPrefix('major_update_verify'),
+ builderNames=majorUpdateBuilderNames
+ )
+ schedulers.append(major_update_verify_scheduler)
+
+ for platform in releaseConfig['unittestPlatforms']:
+ platform_test_builders = []
+ for suites_name, suites in branchConfig['unittest_suites']:
+ platform_test_builders.extend(
+ generateTestBuilderNames(
+ builderPrefix('%s_test' % platform),
+ suites_name, suites))
+
+ s = Scheduler(
+ name=builderPrefix('%s-opt-unittest' % platform),
+ treeStableTimer=0,
+ branch=builderPrefix('%s-opt-unittest' % platform),
+ builderNames=platform_test_builders,
+ )
+ schedulers.append(s)
+
+ if not releaseConfig.get('disableBouncerEntries'):
+ mirror_scheduler1 = TriggerBouncerCheck(
+ name=builderPrefix('ready-for-rel-test'),
+ configRepo=config_repo,
+ minUptake=releaseConfig.get('releasetestUptake', 3),
+ builderNames=[builderPrefix('ready_for_releasetest_testing')] + \
+ [builderPrefix('final_verification', platform)
+ for platform in releaseConfig.get('verifyConfigs', {}).keys()],
+ username=BuildSlaves.tuxedoUsername,
+ password=BuildSlaves.tuxedoPassword)
+
+ schedulers.append(mirror_scheduler1)
+
+ mirror_scheduler2 = TriggerBouncerCheck(
+ name=builderPrefix('ready-for-release'),
+ configRepo=config_repo,
+ minUptake=releaseConfig.get('releaseUptake', 45000),
+ builderNames=[builderPrefix('ready_for_release')],
+ username=BuildSlaves.tuxedoUsername,
+ password=BuildSlaves.tuxedoPassword)
+
+ schedulers.append(mirror_scheduler2)
+
+ if releaseConfig['productName'] == 'fennec':
+ android_signature_verification_scheduler = Scheduler(
+ name=builderPrefix('android_signature_verification_scheduler'),
+ branch=builderPrefix('android_post_signing'),
+ treeStableTimer=None,
+ builderNames=[builderPrefix('android_signature_verification')],
+ )
+ schedulers.append(android_signature_verification_scheduler)
+
if releaseConfig.get('enableAutomaticPushToMirrors') and \
releaseConfig.get('verifyConfigs'):
if releaseConfig.get('disableVirusCheck'):
@@ -1532,7 +1530,7 @@
post_antivirus_builders.append(builderPrefix('push_to_mirrors'))
if releaseConfig['productName'] == 'firefox':
- if not releaseConfig.get('enableSigning'):
+ if not releaseConfig.get('enableSigningAtBuildTime', True):
updates_upstream_builders = [builderPrefix('signing_done')]
schedulers.append(AggregatingScheduler(
name=builderPrefix('%s_signing_done' % releaseConfig['productName']),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment