Skip to content
This repository was archived by the owner on Jun 8, 2022. It is now read-only.

Commit 777f751

Browse files
committed
release script: timeout now 30 minutes, added rpm repo support
1 parent 4e753a9 commit 777f751

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

extras/release_uploader/release.py

+34-2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
'win64' : 'build_win86_64',
2727
'deb32' : 'build_deb86_32',
2828
'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',
2935
}
3036

3137
class Uploader(object):
@@ -64,7 +70,33 @@ def finalize(self):
6470
os.system("make -C %s" % (self.repository,))
6571
self.used = False
6672

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()]
68100

69101
# callback takes success, url, stdout, stderr as arguments
70102
# function returns True on successful submission, False on error
@@ -105,7 +137,7 @@ def run(self):
105137
except Exception:
106138
callback(False, None, None, None)
107139
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']:
109141
# stale job
110142
callback(False, None, None, None)
111143
return

0 commit comments

Comments
 (0)