forked from Acellera/htmd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
makerelease.py
72 lines (57 loc) · 2.22 KB
/
makerelease.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# (c) 2015-2018 Acellera Ltd http://www.acellera.com
# All Rights Reserved
# Distributed under HTMD Software License Agreement
# No redistribution in whole or part
#
import os
import shutil
from subprocess import call, check_output
from tutorials.test_tutorials import test_tutorials
def run_tests(testfolder):
excode = test_tutorials(testfolder)
if excode == 0:
print('All tests were collected and passed successfully.')
else:
print('Error occurred in running tests.')
# Error codes taken from pytest documentation
if excode == 1:
raise RuntimeError('Tests were collected and run but some of the tests failed.')
elif excode == 2:
raise RuntimeError('Test execution was interrupted by the user.')
elif excode == 3:
raise RuntimeError('Internal error happened while executing tests.')
elif excode == 4:
raise RuntimeError('pytest command line usage error.')
elif excode == 5:
raise RuntimeError('No tests were collected.')
def makeMajorRelease(version, message, testfolder):
relname = 'rel-{}'.format(version)
call(['git', 'checkout', 'master'])
call(['git', 'fetch'])
call(['git', 'pull'])
call(['git', 'checkout', '-b', relname])
run_tests(testfolder)
call(['git', 'tag', version, '-m', message])
call(['git', 'push', '--tags', 'origin', relname])
call(['git', 'checkout', 'master'])
call(['git', 'tag', version, '-m', message])
call(['git', 'push', '--tags'])
def makeMinorDevRelease(version, message, testfolder):
call(['git', 'checkout', 'master'])
call(['git', 'fetch'])
call(['git', 'pull'])
run_tests(testfolder)
call(['git', 'tag', version, '-m', message])
call(['git', 'push', '--tags', 'origin', 'master'])
def makeStableBugFix(version, message, testfolder):
relname = 'rel-{}.x'.format('.'.join(version.split(sep='.')[:2]))
call(['git', 'checkout', 'master'])
call(['git', 'fetch'])
call(['git', 'pull'])
call(['git', 'checkout', relname])
call(['git', 'fetch'])
call(['git', 'pull'])
run_tests(testfolder)
call(['git', 'tag', version, '-m', message])
call(['git', 'push', '--tags', 'origin', relname])
call(['git', 'checkout', 'master'])