Bug 965151 - Setup tooltool in valgrind builds. r=nthomas
--- a/misc.py
+++ b/misc.py
@@ -2356,16 +2356,19 @@ def generateBranchObjects(config, name,
mock_packages=pf.get('mock_packages'),
mock_copyin_files=pf.get('mock_copyin_files'),
env=valgrind_env,
reboot_command=['python',
'scripts/buildfarm/maintenance/count_and_reboot.py',
'-f', './reboot_count.txt',
'-n', '0',
'-z'],
+ tooltool_manifest_src=pf.get('tooltool_manifest_src'),
+ tooltool_script=pf.get('tooltool_script'),
+ tooltool_url_list=config.get('tooltool_url_list', []),
)
mozilla2_valgrind_builder = {
'name': '%s valgrind' % pf['base_name'],
'slavenames': pf['slaves'],
'builddir': '%s-%s-valgrind' % (name, platform),
'slavebuilddir': normalizeName('%s-%s-valgrind' % (name, platform), pf['stage_product']),
'factory': mozilla2_valgrind_factory,
'category': name,
--- a/process/factory.py
+++ b/process/factory.py
@@ -5235,41 +5235,52 @@ def extractJSONProperties(rv, stdout, st
props = {}
try:
stdout = stdout.strip()
props.update(json.loads(stdout))
finally:
return props
-class ScriptFactory(RequestSortingBuildFactory):
+class ScriptFactory(RequestSortingBuildFactory, TooltoolMixin):
def __init__(self, scriptRepo, scriptName, cwd=None, interpreter=None,
extra_data=None, extra_args=None, use_credentials_file=False,
script_timeout=1200, script_maxtime=None, log_eval_func=None,
reboot_command=None, hg_bin='hg', platform=None,
use_mock=False, mock_target=None,
mock_packages=None, mock_copyin_files=None,
triggered_schedulers=None, env={}, copy_properties=None,
- properties_file='buildprops.json'):
+ properties_file='buildprops.json',
+ tooltool_manifest_src=None,
+ tooltool_bootstrap="setup.sh",
+ tooltool_url_list=None,
+ tooltool_script=None):
BuildFactory.__init__(self)
self.script_timeout = script_timeout
self.log_eval_func = log_eval_func
self.script_maxtime = script_maxtime
self.reboot_command = reboot_command
self.platform = platform
self.use_mock = use_mock
self.mock_target = mock_target
self.mock_packages = mock_packages
self.mock_copyin_files = mock_copyin_files
self.get_basedir_cmd = ['bash', '-c', 'pwd']
self.triggered_schedulers = triggered_schedulers
self.env = env.copy()
self.use_credentials_file = use_credentials_file
self.copy_properties = copy_properties or []
+ self.tooltool_manifest_src = tooltool_manifest_src
+ self.tooltool_url_list = tooltool_url_list or []
+ self.tooltool_script = tooltool_script or ['/tools/tooltool.py']
+ self.tooltool_bootstrap = tooltool_bootstrap
+
+ assert len(self.tooltool_url_list) <= 1, "multiple urls not currently supported by tooltool"
+
if platform and 'win' in platform:
self.get_basedir_cmd = ['cd']
if scriptName[0] == '/':
script_path = scriptName
else:
script_path = 'scripts/%s' % scriptName
if interpreter:
if isinstance(interpreter, (tuple, list)):
@@ -5350,16 +5361,18 @@ class ScriptFactory(RequestSortingBuildF
flunkOnFailure=False,
))
self.addStep(OutputStep(
name='tinderboxprint_script_revlink',
data=WithProperties(
'TinderboxPrint: %s_revlink: %s/rev/%%(script_repo_revision)s' %
(scriptRepo.split('/')[-1], scriptRepo)),
))
+ if self.tooltool_manifest_src:
+ self.addTooltoolStep()
self.runScript()
self.addCleanupSteps()
self.reboot()
def addCleanupSteps(self):
# remove oauth.txt file, we don't wanna to leave keys lying around
if self.use_credentials_file:
self.addStep(ShellCommand(