Bug 1253110 - Construct artifact classes using named arguments; r?mshal draft
authorGregory Szorc <gps@mozilla.com>
Tue, 19 Apr 2016 10:00:04 -0700
changeset 363137 28bac734fd735c2d47080bd888b8cae6b535dff3
parent 363136 446375da6c76c354b1dd15640831b50546a89feb
child 363138 1a3290a219afd7d6e03a4d38d0dc3e4a082d95d6
push id17107
push usergszorc@mozilla.com
push dateWed, 04 May 2016 00:54:14 +0000
reviewersmshal
bugs1253110
milestone49.0a1
Bug 1253110 - Construct artifact classes using named arguments; r?mshal This will allow us to define any combination of arguments we wish. MozReview-Commit-ID: 65NK6icKL9f
python/mozbuild/mozbuild/artifacts.py
--- a/python/mozbuild/mozbuild/artifacts.py
+++ b/python/mozbuild/mozbuild/artifacts.py
@@ -383,47 +383,57 @@ class WinArtifactJob(ArtifactJob):
                              'matched an archive path.'.format(
                                  patterns=self.artifact_patterns))
 
 # Keep the keys of this map in sync with the |mach artifact| --job
 # options.  The keys of this map correspond to entries at
 # https://tools.taskcluster.net/index/artifacts/#buildbot.branches.mozilla-central/buildbot.branches.mozilla-central.
 # The values correpsond to a pair of (<package regex>, <test archive regex>).
 JOB_DETAILS = {
-    'android-api-15': (AndroidArtifactJob, ('public/build/fennec-(.*)-arm\.apk',
-                                            None)),
-    'android-x86': (AndroidArtifactJob, ('public/build/fennec-(.*)-i386\.apk',
-                                         None)),
-    'linux': (LinuxArtifactJob, ('public/build/firefox-(.*)\.linux-i686\.tar\.bz2',
-                                 'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'linux-debug': (LinuxArtifactJob, ('public/build/firefox-(.*)\.linux-i686\.tar\.bz2',
-                                 'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'linux64': (LinuxArtifactJob, ('public/build/firefox-(.*)\.linux-x86_64\.tar\.bz2',
-                                   'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'linux64-debug': (LinuxArtifactJob, ('public/build/firefox-(.*)\.linux-x86_64\.tar\.bz2',
-                                   'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'macosx64': (MacArtifactJob, ('public/build/firefox-(.*)\.mac\.dmg',
-                                  'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'macosx64-debug': (MacArtifactJob, ('public/build/firefox-(.*)\.mac64\.dmg',
-                                  'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'win32': (WinArtifactJob, ('public/build/firefox-(.*)\.win32.zip',
-                               'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'win32-debug': (WinArtifactJob, ('public/build/firefox-(.*)\.win32.zip',
-                               'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'win64': (WinArtifactJob, ('public/build/firefox-(.*)\.win64.zip',
-                               'public/build/firefox-(.*)\.common\.tests\.zip')),
-    'win64-debug': (WinArtifactJob, ('public/build/firefox-(.*)\.win64.zip',
-                               'public/build/firefox-(.*)\.common\.tests\.zip')),
+    'android-api-15': (AndroidArtifactJob, {
+        'package_re': 'public/build/fennec-(.*)-arm\.apk',}),
+    'android-x86': (AndroidArtifactJob, {
+        'package_re': 'public/build/fennec-(.*)-i386\.apk'}),
+    'linux': (LinuxArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.linux-i686\.tar\.bz2',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'linux-debug': (LinuxArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.linux-i686\.tar\.bz2',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'linux64': (LinuxArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.linux-x86_64\.tar\.bz2',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'linux64-debug': (LinuxArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.linux-x86_64\.tar\.bz2',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'macosx64': (MacArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.mac\.dmg',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'macosx64-debug': (MacArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.mac64\.dmg',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'win32': (WinArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.win32.zip',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'win32-debug': (WinArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.win32.zip',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'win64': (WinArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.win64.zip',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
+    'win64-debug': (WinArtifactJob, {
+        'package_re': 'public/build/firefox-(.*)\.win64.zip',
+        'tests_re': 'public/build/firefox-(.*)\.common\.tests\.zip'}),
 }
 
 
+def get_job_details(job, log=None):
+    cls, kwargs = JOB_DETAILS[job]
+    return cls(log=log, **kwargs)
 
-def get_job_details(job, log=None):
-    cls, (package_re, tests_re) = JOB_DETAILS[job]
-    return cls(package_re, tests_re, log=log)
 
 def cachedmethod(cachefunc):
     '''Decorator to wrap a class or instance method with a memoizing callable that
     saves results in a (possibly shared) cache.
     '''
     def decorator(method):
         def wrapper(self, *args, **kwargs):
             mapping = cachefunc(self)