Skip to content

Commit e32410e

Browse files
authored
Add create_release.py script (#798)
1 parent bda6a0c commit e32410e

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

scripts/create_release.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#!/usr/bin/env python3
2+
3+
import json
4+
import os
5+
import subprocess
6+
import sys
7+
from collections import OrderedDict
8+
9+
script_dir = os.path.dirname(os.path.abspath(__file__))
10+
root_dir = os.path.dirname(script_dir)
11+
sys.path.append(root_dir)
12+
13+
import emsdk # noqa
14+
15+
16+
def version_to_list(version_string):
17+
return [int(part) for part in version_string.split('.')]
18+
19+
20+
def main(args):
21+
if subprocess.check_output(['git', 'status', '--porcelain'], cwd=root_dir).strip():
22+
print('tree is not clean')
23+
sys.exit(1)
24+
25+
release_info = emsdk.load_releases_info()
26+
new_version = version_to_list(release_info['latest'])
27+
new_version[-1] += 1
28+
branch_name = 'version_%s' % '_'.join(str(part) for part in new_version)
29+
30+
# Create a new git branch
31+
subprocess.check_call(['git', 'checkout', '-b', branch_name], cwd=root_dir)
32+
33+
new_version = '.'.join(str(part) for part in new_version)
34+
new_hash = emsdk.get_emscripten_releases_tot()
35+
print('Creating new release: %s -> %s' % (new_version, new_hash))
36+
release_info['releases'][new_version] = new_hash
37+
releases = [(k, v) for k, v in release_info['releases'].items()]
38+
releases.sort(key=lambda pair: version_to_list(pair[0]))
39+
40+
release_info['releases'] = OrderedDict(reversed(releases))
41+
release_info['latest'] = new_version
42+
43+
with open(os.path.join(root_dir, 'emscripten-releases-tags.txt'), 'w') as f:
44+
f.write(json.dumps(release_info, indent=2))
45+
f.write('\n')
46+
47+
subprocess.check_call(os.path.join(script_dir, 'update_bazel_workspace.sh'), cwd=root_dir)
48+
49+
# Create auto-generated changes to the new git branch
50+
subprocess.check_call(['git', 'add', '-u', '.'], cwd=root_dir)
51+
subprocess.check_call(['git', 'commit', '-m', new_version], cwd=root_dir)
52+
53+
print('New relase created in branch: `%s`' % branch_name)
54+
55+
return 0
56+
57+
58+
if __name__ == '__main__':
59+
sys.exit(main(sys.argv[1:]))

0 commit comments

Comments
 (0)