-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild_and_upload.py
107 lines (84 loc) · 3.2 KB
/
build_and_upload.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import os
import rites.rituals
from dotenv import load_dotenv
p = rites.rituals.Misc
load_dotenv(".env")
pypi_token = os.getenv('PYPI_TOKEN')
cached_lines = []
with open("./rites/_version.py", "r") as f:
cached_lines = f.readlines()
f.close()
def increment_version():
cloned_lines = cached_lines.copy()
cached_version = cloned_lines[2].split('=')[1].strip().replace('\"', '')
new_version = ''
print(f"Env version: {os.getenv('RITES_PKG_VERSION')} - Cached version: {cached_version}")
choice = input(f'''
1. Increment patch version
2. Increment minor version and set patch to 0
3. Increment major version and set patch and minor to 0
4. Don't increment version
5. Custom
>''')
add_label = input(f'''Add Label? (y/n)
>''').lower()
if add_label == 'y':
label = input('Label: ')
else:
label = ''
if choice == '1':
new_version = cloned_lines[2].split('=')[1].strip().replace('\"', '').split('.')
new_version[2] = str(int(new_version[2]) + 1)
new_version = '.'.join(new_version) + label
cloned_lines[2] = f'__version__ = "{new_version}"\n'
elif choice == '2':
new_version = cloned_lines[2].split('=')[1].strip().replace('\"', '').split('.')
new_version[1] = str(int(new_version[1]) + 1)
new_version[2] = '0'
new_version = '.'.join(new_version) + label
cloned_lines[2] = f'__version__ = "{new_version}"\n'
elif choice == '3':
new_version = cloned_lines[2].split('=')[1].strip().replace('\"', '').split('.')
new_version[0] = str(int(new_version[0]) + 1)
new_version[1] = '0'
new_version[2] = '0'
new_version = '.'.join(new_version) + label
cloned_lines[2] = f'__version__ = "{new_version}"\n'
elif choice == '4':
new_version = cached_version + label
cloned_lines[2] = f'__version__ = "{new_version}"\n'
elif choice == '5':
new_version = input('Version: ')
cloned_lines[2] = f'__version__ = "{new_version}"\n'
accept_changes = input(f'''Old version: {cached_version} - New version: {new_version}
Accept changes? (y/n)
>''').lower()
if accept_changes == 'y':
with open("./rites/_version.py", "w") as f:
f.writelines(cloned_lines)
f.close()
clean_dist = input(f"Cleaning dist folder to not upload redundant versions.\nPress 'y' to accept\n>")
if (clean_dist == 'y'):
if os.name == 'nt':
os.system('rmdir /S /Q dist')
os.system('mkdir dist')
else:
os.system('rm -rf dist')
os.system('mkdir dist')
build_package(new_version)
os.system(f'twine upload dist/* -u __token__ -p {pypi_token}')
else:
print('Aborted')
def build_package(pkgVersion):
env_lines = []
with open('.env', 'r') as f:
env_lines = f.readlines()
f.close()
env_lines[1] = f'RITES_PKG_VERSION={pkgVersion}\n'
with open('.env', 'w') as f:
f.writelines(env_lines)
f.close()
load_dotenv(".env")
p.print_info(f"Running setup.py for version {pkgVersion}")
os.system('python setup.py sdist bdist_wheel')
increment_version()