Created
January 12, 2012 19:18
-
-
Save rail/1602483 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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