|
26 | 26 | 'win64' : 'build_win86_64',
|
27 | 27 | 'deb32' : 'build_deb86_32',
|
28 | 28 | 'deb64' : 'build_deb86_64',
|
| 29 | + 'el5_32' : 'build_el5_86_32', |
| 30 | + 'el5_64' : 'build_el5_86_64', |
| 31 | + 'el6_32' : 'build_el6_86_32', |
| 32 | + 'el6_64' : 'build_el6_86_64', |
| 33 | + 'fedora_32' : 'build_fedora_86_32', |
| 34 | + 'fedora_64' : 'build_fedora_86_64', |
29 | 35 | }
|
30 | 36 |
|
31 | 37 | class Uploader(object):
|
@@ -64,7 +70,33 @@ def finalize(self):
|
64 | 70 | os.system("make -C %s" % (self.repository,))
|
65 | 71 | self.used = False
|
66 | 72 |
|
67 |
| -UPLOADERS = [GithubUploader(), DebianUploader()] |
| 73 | +class RPMUploader(Uploader): |
| 74 | + repository = "/var/www/org/overviewer/htdocs/rpms" |
| 75 | + packages = "/var/www/org/overviewer/htdocs/rpms/{system}/{arch}/packages" |
| 76 | + system_map = {'el5' : '5', 'el6' : '6', 'fedora' : '16'} |
| 77 | + arch_map = {'32' : 'i386', '64' : 'x86_64'} |
| 78 | + def __init__(self): |
| 79 | + self.used = False |
| 80 | + def handles_target(self, target, repo, branch): |
| 81 | + if not repo == 'overviewer': |
| 82 | + return False |
| 83 | + handle_prefixes = ['el5', 'el6', 'fedora'] |
| 84 | + return any(map(lambda p: target.startswith(p), handle_prefixes)) |
| 85 | + def handle(self, path, info): |
| 86 | + self.used = True |
| 87 | + arch = info['target'].split('_', 1)[1] |
| 88 | + arch = self.arch_map[arch] |
| 89 | + system = info['target'].split('_', 1)[0] |
| 90 | + system = self.system_map[system] |
| 91 | + package_dir = self.packages.format(system=system, arch=arch) |
| 92 | + |
| 93 | + shutil.copy(path, package_dir) |
| 94 | + def finalize(self): |
| 95 | + if self.used: |
| 96 | + os.system("make -C %s" % (self.repository,)) |
| 97 | + self.used = False |
| 98 | + |
| 99 | +UPLOADERS = [GithubUploader(), DebianUploader(), RPMUploader()] |
68 | 100 |
|
69 | 101 | # callback takes success, url, stdout, stderr as arguments
|
70 | 102 | # function returns True on successful submission, False on error
|
@@ -105,7 +137,7 @@ def run(self):
|
105 | 137 | except Exception:
|
106 | 138 | callback(False, None, None, None)
|
107 | 139 | return
|
108 |
| - elif time.time() > self.submitted + 120 and not self.job.status['running']: |
| 140 | + elif time.time() > self.submitted + 1800 and not self.job.status['running']: |
109 | 141 | # stale job
|
110 | 142 | callback(False, None, None, None)
|
111 | 143 | return
|
|
0 commit comments