Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

merged from default

changeset:   2279:032646bdc420
parent:      2277:984deb384e42
user:        Chris Cooper <ccooper@deadsquid.com>
date:        Mon Oct 31 20:59:04 2011 -0400
summary:     Added tag FIREFOX_8_0b6_RELEASE, FIREFOX_8_0b6_BUILD1, FENNEC_8_0b6_RELEASE, FENNEC_8_0b6_BUILD1 for changeset 8692e8d0b187

changeset:   2281:0fc5a343a31d
parent:      2279:032646bdc420
user:        Armen Zambrano Gasparnian <armenzg@mozilla.com>
date:        Tue Nov 01 13:56:44 2011 -0400
summary:     Bug 696376. Enable leaktests for 10.6 on mozilla-central. r=armenzg,a=espindola

changeset:   2282:e36aaffade09
tag:         tip
user:        Ben Hearsum <bhearsum@mozilla.com>
date:        Tue Nov 01 14:25:55 2011 -0400
summary:     bug 696161: create simplified talos buildbot for a-team usage. r=rail/catlee

--HG--
branch : production-0.8
  • Loading branch information...
commit 01f48411faf95734ed638e0a025c49e4d366cf59 2 parents 9eaaf02 + c0b2617
Chris AtLee authored
4  .hgtags
@@ -330,3 +330,7 @@ b6eb2898e5a62ca7cbadc2ed7a2017ee7bdf1598 FENNEC_8_0b5_RELEASE
330 330
 b6eb2898e5a62ca7cbadc2ed7a2017ee7bdf1598 FENNEC_8_0b5_BUILD1
331 331
 8692e8d0b18734f7b73c202041b7a9f6ddd3cf64 FIREFOX_3_6_24_RELEASE
332 332
 8692e8d0b18734f7b73c202041b7a9f6ddd3cf64 FIREFOX_3_6_24_BUILD1
  333
+8692e8d0b18734f7b73c202041b7a9f6ddd3cf64 FIREFOX_8_0b6_RELEASE
  334
+8692e8d0b18734f7b73c202041b7a9f6ddd3cf64 FIREFOX_8_0b6_BUILD1
  335
+8692e8d0b18734f7b73c202041b7a9f6ddd3cf64 FENNEC_8_0b6_RELEASE
  336
+8692e8d0b18734f7b73c202041b7a9f6ddd3cf64 FENNEC_8_0b6_BUILD1
108  process/factory.py
@@ -1151,9 +1151,6 @@ def addLeakTestStepsCommon(self, baseUrl, leakEnv, graphAndUpload):
1151 1151
         * leakEnv Environment used for running firefox.
1152 1152
         * graphAndUpload Used to prevent the try jobs from doing talos graph
1153 1153
           posts and uploading logs."""
1154  
-        if self.platform == 'macosx64':
1155  
-            return
1156  
-
1157 1154
         self.addStep(AliveTest(
1158 1155
           env=leakEnv,
1159 1156
           workdir='build/%s/_leaktest' % self.mozillaObjdir,
@@ -1237,7 +1234,7 @@ def addLeakTestStepsCommon(self, baseUrl, leakEnv, graphAndUpload):
1237 1234
               workdir='.',
1238 1235
               command=['mv', 'sdleak.tree', 'sdleak.tree.raw']
1239 1236
               ))
1240  
-                # Bug 571443 - disable fix-macosx-stack.pl
  1237
+            # Bug 571443 - disable fix-macosx-stack.pl
1241 1238
             if self.platform == 'macosx64':
1242 1239
                 self.addStep(ShellCommand(
1243 1240
                   workdir='.',
@@ -6908,12 +6905,18 @@ def __init__(self, OS, supportUrlBase, envName, buildBranch, branchName,
6908 6905
         if self.addonTester:
6909 6906
             self.addDownloadExtensionStep()
6910 6907
         self.addSetupSteps()
  6908
+        self.addPluginInstallSteps()
  6909
+        self.addPagesetInstallSteps()
  6910
+        self.addAddOnInstallSteps()
6911 6911
         if self.remoteTests:
6912 6912
             self.addPrepareDeviceStep()
6913 6913
         self.addUpdateConfigStep()
6914 6914
         self.addRunTestStep()
6915 6915
         self.addRebootStep()
6916 6916
 
  6917
+    def _propertyIsSet(self, step, prop):
  6918
+        return step.build.getProperties().has_key(prop)
  6919
+
6917 6920
     def addInfoSteps(self):
6918 6921
         self.addStep(OutputStep(
6919 6922
          name='tinderboxprint_slavename',
@@ -7012,7 +7015,7 @@ def addCleanupSteps(self):
7012 7015
     def addDmgInstaller(self):
7013 7016
         if self.OS in ('leopard', 'tiger', 'snowleopard'):
7014 7017
             self.addStep(DownloadFile(
7015  
-             url="%s/tools/buildfarm/utils/installdmg.sh" % self.supportUrlBase,
  7018
+             url=WithProperties("%s/tools/buildfarm/utils/installdmg.sh" % self.supportUrlBase),
7016 7019
              workdir=self.workdirBase,
7017 7020
             ))
7018 7021
 
@@ -7034,7 +7037,7 @@ def addUnpackBuildSteps(self):
7034 7037
         if (self.releaseTester and (self.OS in ('xp', 'vista', 'win7', 'w764'))): 
7035 7038
             #build is packaged in a windows installer 
7036 7039
             self.addStep(DownloadFile( 
7037  
-             url="%s/tools/buildfarm/utils/firefoxInstallConfig.ini" % self.supportUrlBase,
  7040
+             url=WithProperties("%s/tools/buildfarm/utils/firefoxInstallConfig.ini" % self.supportUrlBase),
7038 7041
              workdir=self.workdirBase,
7039 7042
             ))
7040 7043
             self.addStep(SetProperty(
@@ -7193,7 +7196,7 @@ def check_sdk(cmd, step):
7193 7196
     def addSetupSteps(self):
7194 7197
         if not self.remoteTests:
7195 7198
             self.addStep(DownloadFile(
7196  
-             url="%s/tools/buildfarm/maintenance/count_and_reboot.py" % self.supportUrlBase,
  7199
+             url=WithProperties("%s/tools/buildfarm/maintenance/count_and_reboot.py" % self.supportUrlBase),
7197 7200
              workdir=self.workdirBase,
7198 7201
             ))
7199 7202
 
@@ -7206,7 +7209,7 @@ def addSetupSteps(self):
7206 7209
 
7207 7210
         if self.customTalos is None and not self.remoteTests:
7208 7211
             self.addStep(DownloadFile(
7209  
-              url="%s/zips/talos.zip" % self.supportUrlBase,
  7212
+              url=WithProperties("%s/zips/talos.zip" % self.supportUrlBase),
7210 7213
               workdir=self.workdirBase,
7211 7214
             ))
7212 7215
             self.addStep(UnpackFile(
@@ -7214,7 +7217,7 @@ def addSetupSteps(self):
7214 7217
              workdir=self.workdirBase,
7215 7218
             ))
7216 7219
             self.addStep(DownloadFile(
7217  
-             url="%s/xpis/pageloader.xpi" % self.supportUrlBase,
  7220
+             url=WithProperties("%s/xpis/pageloader.xpi" % self.supportUrlBase),
7218 7221
              workdir=os.path.join(self.workdirBase, "talos/page_load_test"))
7219 7222
             )
7220 7223
         elif self.remoteTests:
@@ -7259,11 +7262,12 @@ def addSetupSteps(self):
7259 7262
              workdir=self.workdirBase,
7260 7263
             ))
7261 7264
 
  7265
+    def addPluginInstallSteps(self):
7262 7266
         if self.plugins:
7263 7267
             #32 bit (includes mac browsers)
7264 7268
             if self.OS in ('xp', 'vista', 'win7', 'fedora', 'tegra_android', 'leopard', 'snowleopard', 'leopard-o'):
7265 7269
                 self.addStep(DownloadFile(
7266  
-                 url="%s/%s" % (self.supportUrlBase, self.plugins['32']),
  7270
+                 url=WithProperties("%s/%s" % (self.supportUrlBase, self.plugins['32'])),
7267 7271
                  workdir=os.path.join(self.workdirBase, "talos/base_profile"),
7268 7272
                 ))
7269 7273
                 self.addStep(UnpackFile(
@@ -7273,7 +7277,7 @@ def addSetupSteps(self):
7273 7277
             #64 bit
7274 7278
             if self.OS in ('w764', 'fedora64'):
7275 7279
                 self.addStep(DownloadFile(
7276  
-                 url="%s/%s" % (self.supportUrlBase, self.plugins['64']),
  7280
+                 url=WithProperties("%s/%s" % (self.supportUrlBase, self.plugins['64'])),
7277 7281
                  workdir=os.path.join(self.workdirBase, "talos/base_profile"),
7278 7282
                 ))
7279 7283
                 self.addStep(UnpackFile(
@@ -7281,9 +7285,10 @@ def addSetupSteps(self):
7281 7285
                  workdir=os.path.join(self.workdirBase, "talos/base_profile"),
7282 7286
                 ))
7283 7287
 
  7288
+    def addPagesetInstallSteps(self):
7284 7289
         for pageset in self.pagesets:
7285 7290
             self.addStep(DownloadFile(
7286  
-             url="%s/%s" % (self.supportUrlBase, pageset),
  7291
+             url=WithProperties("%s/%s" % (self.supportUrlBase, pageset)),
7287 7292
              workdir=os.path.join(self.workdirBase, "talos/page_load_test"),
7288 7293
             ))
7289 7294
             self.addStep(UnpackFile(
@@ -7291,9 +7296,10 @@ def addSetupSteps(self):
7291 7296
              workdir=os.path.join(self.workdirBase, "talos/page_load_test"),
7292 7297
             ))
7293 7298
 
  7299
+    def addAddOnInstallSteps(self):
7294 7300
         for addOn in self.talosAddOns:
7295 7301
             self.addStep(DownloadFile(
7296  
-             url="%s/%s" % (self.supportUrlBase, addOn),
  7302
+             url=WithProperties("%s/%s" % (self.supportUrlBase, addOn)),
7297 7303
              workdir=os.path.join(self.workdirBase, "talos"),
7298 7304
             ))
7299 7305
             self.addStep(UnpackFile(
@@ -7347,6 +7353,7 @@ def get_addon_url(build):
7347 7353
          name="Download extension",
7348 7354
          ignore_certs=True,
7349 7355
          wget_args=['-O', TalosFactory.extName],
  7356
+         doStepIf=lambda step: self._propertyIsSet(step, 'addonUrl')
7350 7357
         ))
7351 7358
 
7352 7359
     def addPrepareDeviceStep(self):
@@ -7436,6 +7443,81 @@ def do_disconnect(cmd):
7436 7443
              env=self.env,
7437 7444
             ))
7438 7445
 
  7446
+class RuntimeTalosFactory(TalosFactory):
  7447
+    def __init__(self, configOptions=None, plugins=None, pagesets=None,
  7448
+                 supportUrlBase=None, talosAddOns=None, addonTester=True,
  7449
+                 *args, **kwargs):
  7450
+        if not configOptions:
  7451
+            # TalosFactory/MozillaUpdateConfig require this format for this variable
  7452
+            # MozillaUpdateConfig allows for adding additional options at runtime,
  7453
+            # which is how this factory is intended to be used.
  7454
+            configOptions = {'suites': []}
  7455
+        # For the rest of these, make them overridable with WithProperties
  7456
+        if not plugins:
  7457
+            plugins = {'32': '%(plugin)s', '64': '%(plugin)s'}
  7458
+        if not pagesets:
  7459
+            pagesets = ['%(pageset1)s', '%(pageset2)s']
  7460
+        if not supportUrlBase:
  7461
+            supportUrlBase = '%(supportUrlBase)s'
  7462
+        if not talosAddOns:
  7463
+            talosAddOns = ['%(talosAddon1)s', '%(talosAddon2)s']
  7464
+        TalosFactory.__init__(self, *args, configOptions=configOptions,
  7465
+                              plugins=plugins, pagesets=pagesets,
  7466
+                              supportUrlBase=supportUrlBase,
  7467
+                              talosAddOns=talosAddOns, addonTester=addonTester,
  7468
+                              **kwargs)
  7469
+
  7470
+    def addInfoSteps(self):
  7471
+        pass
  7472
+
  7473
+    def addPluginInstallSteps(self):
  7474
+        if self.plugins:
  7475
+            self.addStep(DownloadFile(
  7476
+                url=WithProperties("%s/%s" % (self.supportUrlBase, '%(plugin)s')),
  7477
+                workdir=os.path.join(self.workdirBase, "talos/base_profile"),
  7478
+                doStepIf=lambda step: self._propertyIsSet(step, 'plugin'),
  7479
+                filename_property='plugin_base'
  7480
+            ))
  7481
+            self.addStep(UnpackFile(
  7482
+                filename=WithProperties('%(plugin_base)s'),
  7483
+                workdir=os.path.join(self.workdirBase, "talos/base_profile"),
  7484
+                doStepIf=lambda step: self._propertyIsSet(step, 'plugin')
  7485
+            ))
  7486
+
  7487
+    def addPagesetInstallSteps(self):
  7488
+        # XXX: This is really hacky, it would be better to extract the property
  7489
+        # name from the format string.
  7490
+        n = 1
  7491
+        for pageset in self.pagesets:
  7492
+            self.addStep(DownloadFile(
  7493
+             url=WithProperties("%s/%s" % (self.supportUrlBase, pageset)),
  7494
+             workdir=os.path.join(self.workdirBase, "talos/page_load_test"),
  7495
+             doStepIf=lambda step, n=n: self._propertyIsSet(step, 'pageset%d' % n),
  7496
+             filename_property='pageset%d_base' % n
  7497
+            ))
  7498
+            self.addStep(UnpackFile(
  7499
+             filename=WithProperties('%(pageset' + str(n) + '_base)s'),
  7500
+             workdir=os.path.join(self.workdirBase, "talos/page_load_test"),
  7501
+             doStepIf=lambda step, n=n: self._propertyIsSet(step, 'pageset%d' % n)
  7502
+            ))
  7503
+            n += 1
  7504
+
  7505
+    def addAddOnInstallSteps(self):
  7506
+        n = 1
  7507
+        for addOn in self.talosAddOns:
  7508
+            self.addStep(DownloadFile(
  7509
+             url=WithProperties("%s/%s" % (self.supportUrlBase, addOn)),
  7510
+             workdir=os.path.join(self.workdirBase, "talos"),
  7511
+             doStepIf=lambda step, n=n: self._propertyIsSet(step, 'talosAddon%d' % n),
  7512
+             filename_property='talosAddon%d_base' % n
  7513
+            ))
  7514
+            self.addStep(UnpackFile(
  7515
+             filename=WithProperties('%(talosAddon' + str(n) + '_base)s'),
  7516
+             workdir=os.path.join(self.workdirBase, "talos"),
  7517
+             doStepIf=lambda step, n=n: self._propertyIsSet(step, 'talosAddon%d' % n)
  7518
+            ))
  7519
+            n += 1
  7520
+
7439 7521
 class TryTalosFactory(TalosFactory):
7440 7522
     def addDownloadBuildStep(self):
7441 7523
         def get_url(build):
5  steps/misc.py
@@ -459,11 +459,12 @@ def start(self):
459 459
             self.addCompleteLog("errors", "Automation Error: %s" % str(e))
460 460
             return self.finished(FAILURE)
461 461
 
  462
+        renderedUrl = self.build.getProperties().render(url)
462 463
         if self.url_property:
463  
-            self.setProperty(self.url_property, url, "DownloadFile")
  464
+            self.setProperty(self.url_property, renderedUrl, "DownloadFile")
464 465
         if self.filename_property:
465 466
             self.setProperty(self.filename_property,
466  
-                    os.path.basename(url), "DownloadFile")
  467
+                    os.path.basename(renderedUrl), "DownloadFile")
467 468
 
468 469
         if self.ignore_certs:
469 470
             self.setCommand(["wget"] + self.wget_args + ["-N", "--no-check-certificate", url])
6  steps/talos.py
@@ -48,6 +48,12 @@ def setBuild(self, build):
48 48
         self.super_class.setBuild(self, build)
49 49
         title = build.slavename
50 50
 
  51
+        try:
  52
+            self.addOptions += self.getProperty('configurationOptions').split(',')
  53
+        # Property doesn't exist, that's fine
  54
+        except KeyError:
  55
+            pass
  56
+
51 57
         #if we are an addonTester then the addonName/addonUrl build property should be set
52 58
         #  if it's not set this will throw a key error and the run will go red - which should be the expected result
53 59
         if self.addonTester:

0 notes on commit 01f4841

Please sign in to comment.
Something went wrong with that request. Please try again.