Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge default branch

--HG--
branch : production-0.8
  • Loading branch information...
commit 7f023cbba46463ec608b17adc0d431a4b83dd5c1 2 parents 396fa31 + 191659a
@rail rail authored
Showing with 110 additions and 61 deletions.
  1. +12 −6 misc.py
  2. +24 −21 process/factory.py
  3. +70 −30 process/release.py
  4. +4 −4 scheduler.py
View
18 misc.py
@@ -1178,9 +1178,13 @@ def generateBranchObjects(config, name):
branchObjects['builders'].append(mozilla2_l10n_nightly_builder)
if config['enable_shark'] and platform.startswith('macosx'):
+ if name in ('mozilla-1.9.1','mozilla-1.9.2'):
+ shark_objdir = config['objdir']
+ else:
+ shark_objdir = pf['platform_objdir']
mozilla2_shark_factory = NightlyBuildFactory(
env= pf['env'],
- objdir=config['objdir'],
+ objdir=shark_objdir,
platform=platform,
hgHost=config['hghost'],
repoPath=config['repo_path'],
@@ -1920,6 +1924,7 @@ def generateCCBranchObjects(config, name):
unittestBranch=unittestBranch,
tinderboxBuildsDir=tinderboxBuildsDir,
enable_ccache=pf.get('enable_ccache', False),
+ useSharedCheckouts=pf.get('enable_shared_checkouts', False),
**extra_args
)
mozilla2_dep_builder = {
@@ -2015,6 +2020,7 @@ def generateCCBranchObjects(config, name):
triggeredSchedulers=triggeredSchedulers,
tinderboxBuildsDir=tinderboxBuildsDir,
enable_ccache=pf.get('enable_ccache', False),
+ useSharedCheckouts=pf.get('enable_shared_checkouts', False),
)
mozilla2_nightly_builder = {
@@ -2292,11 +2298,9 @@ def generateCCBranchObjects(config, name):
branchObjects['builders'].append(codecoverage_builder)
if config.get('enable_blocklist_update', False):
- pass
- # This would only update Firefox blocklist as it stands, see Bug 630526
- #if platform == 'linux':
- # blocklistBuilder = generateBlocklistBuilder(config, name, platform, pf['base_name'], pf['slaves'])
- # branchObjects['builders'].append(blocklistBuilder)
+ if platform == 'linux':
+ blocklistBuilder = generateBlocklistBuilder(config, name, platform, pf['base_name'], pf['slaves'])
+ branchObjects['builders'].append(blocklistBuilder)
# -- end of per-platform loop --
@@ -2853,6 +2857,8 @@ def generateMobileBranchObjects(config, name):
def generateBlocklistBuilder(config, branch_name, platform, base_name, slaves) :
extra_args = ['-d', '-b', config['repo_path']]
+ if config['product_name'] is not None:
+ extra_args.extend(['-p', config['product_name']])
if config['hg_username'] is not None:
extra_args.extend(['-u', config['hg_username']])
if config['hg_ssh_key'] is not None:
View
45 process/factory.py
@@ -874,7 +874,7 @@ def get_ctors(rc, stdout, stderr):
testresults = [ ('num_ctors', 'num_ctors', num_ctors, str(num_ctors)) ]
return dict(num_ctors=num_ctors, testresults=testresults)
except:
- return {testresults: []}
+ return {'testresults': []}
self.addStep(SetProperty(
name='get_ctors',
@@ -3063,29 +3063,32 @@ def updateEnUS(self):
Requires that we run make unpack first.
'''
self.addStep(ShellCommand,
- command=['make', 'unpack'],
- haltOnFailure=True,
- env=self.env,
- workdir='%s/%s/%s/locales' % (self.baseWorkDir, self.origSrcDir,
- self.appName)
- )
+ name='make_unpack',
+ command=['make', 'unpack'],
+ descriptionDone='unpacked en-US',
+ haltOnFailure=True,
+ env=self.env,
+ workdir='%s/%s/%s/locales' % (self.baseWorkDir, self.objdir, self.appName),
+ )
+
self.addStep(SetProperty,
- command=['make', 'ident'],
- haltOnFailure=True,
- workdir='%s/%s/%s/locales' % (self.baseWorkDir, self.origSrcDir,
- self.appName),
- extract_fn=identToProperties()
- )
+ command=['make', 'ident'],
+ haltOnFailure=True,
+ workdir='%s/%s/%s/locales' % (self.baseWorkDir, self.objdir, self.appName),
+ extract_fn=identToProperties()
+ )
self.addStep(ShellCommand,
- command=['hg', 'update', '-C', '-r', WithProperties('%(comm_revision)s')],
- haltOnFailure=True,
- workdir='%s/%s' % (self.baseWorkDir, self.origSrcDir)
- )
+ name='update_comm_enUS_revision',
+ command=['hg', 'update', '-C', '-r',
+ WithProperties('%(comm_revision)s')],
+ haltOnFailure=True,
+ workdir='%s/%s' % (self.baseWorkDir, self.origSrcDir))
self.addStep(ShellCommand,
- command=['hg', 'update', '-C', '-r', WithProperties('%(moz_revision)s')],
- haltOnFailure=True,
- workdir='%s/%s' % (self.baseWorkDir, self.mozillaSrcDir)
- )
+ name='update_mozilla_enUS_revision',
+ command=['hg', 'update', '-C', '-r',
+ WithProperties('%(moz_revision)s')],
+ haltOnFailure=True,
+ workdir='%s/%s' % (self.baseWorkDir, self.mozillaSrcDir))
def tinderboxPrintRevisions(self):
self.tinderboxPrint('comm_revision',WithProperties('%(comm_revision)s'))
View
100 process/release.py
@@ -31,7 +31,8 @@
DEFAULT_L10N_CHUNKS = 15
-def generateReleaseBranchObjects(releaseConfig, branchConfig, staging):
+def generateReleaseBranchObjects(releaseConfig, branchConfig, staging,
+ releaseConfigFile):
# This variable is one thing that forces us into reconfiging prior to a
# release. It should be removed as soon as nothing depends on it.
releaseTag = '%s_RELEASE' % releaseConfig['baseTag']
@@ -356,6 +357,20 @@ def l10nBuilders(platform):
)
schedulers.append(update_verify_scheduler)
+ check_permissions_scheduler = Dependent(
+ name=builderPrefix('check_permissions'),
+ upstream=updates_scheduler,
+ builderNames=[builderPrefix('check_permissions')]
+ )
+ schedulers.append(check_permissions_scheduler)
+
+ antivirus_scheduler = Dependent(
+ name=builderPrefix('antivirus'),
+ upstream=updates_scheduler,
+ builderNames=[builderPrefix('antivirus')]
+ )
+ schedulers.append(antivirus_scheduler)
+
if releaseConfig['majorUpdateRepoPath']:
majorUpdateBuilderNames = []
for platform in sorted(releaseConfig['majorUpdateVerifyConfigs'].keys()):
@@ -512,6 +527,7 @@ def l10nBuilders(platform):
'env': tag_env,
'properties': {'builddir': builderPrefix('tag'), 'slavebuilddir': reallyShort(builderPrefix('tag'))}
})
+ notify_builders.append(builderPrefix('tag'))
else:
builders.append(makeDummyBuilder(
name=builderPrefix('tag'),
@@ -926,24 +942,46 @@ def l10nBuilders(platform):
reallyShort(builderPrefix('%s_up_vrfy' % platform))}
})
- pre_push_checks_factory = ScriptFactory(
+ check_permissions_factory = ScriptFactory(
scriptRepo=tools_repo,
- extra_args=[branchConfigFile, 'check'],
+ extra_args=[branchConfigFile, 'permissions'],
script_timeout=3*60*60,
scriptName='scripts/release/push-to-mirrors.sh',
)
builders.append({
- 'name': builderPrefix('pre_push_checks'),
+ 'name': builderPrefix('check_permissions'),
'slavenames': branchConfig['platforms']['linux']['slaves'],
'category': builderPrefix(''),
- 'builddir': builderPrefix('pre_push_checks'),
- 'slavebuilddir': reallyShort(builderPrefix('psh_chks')),
- 'factory': pre_push_checks_factory,
+ 'builddir': builderPrefix('check_permissions'),
+ 'slavebuilddir': reallyShort(builderPrefix('chk_prms')),
+ 'factory': check_permissions_factory,
'nextSlave': _nextFastReservedSlave,
'env': builder_env,
- 'properties': {'slavebuilddir':
- reallyShort(builderPrefix('psh_chks'))},
+ 'properties': {'slavebuilddir': reallyShort(builderPrefix('chk_prms')),
+ 'script_repo_revision': releaseTag,
+ 'release_config': releaseConfigFile},
+ })
+
+ antivirus_factory = ScriptFactory(
+ scriptRepo=tools_repo,
+ extra_args=[branchConfigFile, 'antivirus'],
+ script_timeout=3*60*60,
+ scriptName='scripts/release/push-to-mirrors.sh',
+ )
+
+ builders.append({
+ 'name': builderPrefix('antivirus'),
+ 'slavenames': branchConfig['platforms']['linux']['slaves'],
+ 'category': builderPrefix(''),
+ 'builddir': builderPrefix('antivirus'),
+ 'slavebuilddir': reallyShort(builderPrefix('av')),
+ 'factory': antivirus_factory,
+ 'nextSlave': _nextFastReservedSlave,
+ 'env': builder_env,
+ 'properties': {'slavebuilddir': reallyShort(builderPrefix('av')),
+ 'script_repo_revision': releaseTag,
+ 'release_config': releaseConfigFile},
})
push_to_mirrors_factory = ScriptFactory(
@@ -956,7 +994,7 @@ def l10nBuilders(platform):
push_to_mirrors_factory.addStep(Trigger(
schedulerNames=[builderPrefix('ready-for-rel-test'),
builderPrefix('ready-for-release')],
- copy_properties=['revision', 'release_config']
+ copy_properties=['script_repo_revision', 'release_config']
))
@@ -1143,26 +1181,28 @@ def l10nBuilders(platform):
reallyShort(builderPrefix('eu_bncr_sub'))}
})
- #send a message when we receive the sendchange and start tagging
- status.append(ChangeNotifier(
- fromaddr="release@mozilla.com",
- relayhost="mail.build.mozilla.org",
- sendToInterestedUsers=False,
- extraRecipients=releaseConfig['AllRecipients'] + \
- releaseConfig['PassRecipients'],
- branches=[releaseConfig['sourceRepoPath']],
- messageFormatter=createReleaseChangeMessage,
- ))
- #send a message when signing is complete
- status.append(ChangeNotifier(
- fromaddr="release@mozilla.com",
- relayhost="mail.build.mozilla.org",
- sendToInterestedUsers=False,
- extraRecipients=releaseConfig['AllRecipients'] + \
- releaseConfig['PassRecipients'],
- branches=[builderPrefix('post_signing')],
- messageFormatter=createReleaseChangeMessage,
- ))
+ # Separate email messages per list. Mailman doesn't try to avoid duplicate
+ # messages in this case. See Bug 635527 for the details.
+ for recipient in releaseConfig['AllRecipients'] + \
+ releaseConfig['PassRecipients']:
+ #send a message when we receive the sendchange and start tagging
+ status.append(ChangeNotifier(
+ fromaddr="release@mozilla.com",
+ relayhost="mail.build.mozilla.org",
+ sendToInterestedUsers=False,
+ extraRecipients=[recipient],
+ branches=[releaseConfig['sourceRepoPath']],
+ messageFormatter=createReleaseChangeMessage,
+ ))
+ #send a message when signing is complete
+ status.append(ChangeNotifier(
+ fromaddr="release@mozilla.com",
+ relayhost="mail.build.mozilla.org",
+ sendToInterestedUsers=False,
+ extraRecipients=[recipient],
+ branches=[builderPrefix('post_signing')],
+ messageFormatter=createReleaseChangeMessage,
+ ))
#send the nice(passing) release messages
status.append(MailNotifier(
View
8 scheduler.py
@@ -233,7 +233,7 @@ class TriggerBouncerCheck(Triggerable):
working = False
loop = None
release_config = None
- revision = None
+ script_repo_revision = None
configRepo = None
def __init__(self, minUptake, configRepo, checkMARs=True,
@@ -260,8 +260,8 @@ def trigger(self, ss, set_props=None):
if set_props:
props.updateFromProperties(set_props)
- self.revision = props.getProperty('revision')
- assert self.revision, 'revision should be set'
+ self.script_repo_revision = props.getProperty('script_repo_revision')
+ assert self.script_repo_revision, 'script_repo_revision should be set'
self.release_config = props.getProperty('release_config')
assert self.release_config, 'release_config should be set'
@@ -286,7 +286,7 @@ def stopLoop(self, reason=None):
def getReleaseConfig(self):
url = str('%s/raw-file/%s/%s' %
- (self.configRepo, self.revision, self.release_config))
+ (self.configRepo, self.script_repo_revision, self.release_config))
d = getPage(url)
def setReleaseConfig(res):
Please sign in to comment.
Something went wrong with that request. Please try again.