Langchain-Chatchat
/
release.py
50 строк · 1.5 Кб
1import os2import subprocess3import re4
5def get_latest_tag():6output = subprocess.check_output(['git', 'tag'])7tags = output.decode('utf-8').split('\n')[:-1]8latest_tag = sorted(tags, key=lambda t: tuple(map(int, re.match(r'v(\d+)\.(\d+)\.(\d+)', t).groups())))[-1]9return latest_tag10
11def update_version_number(latest_tag, increment):12major, minor, patch = map(int, re.match(r'v(\d+)\.(\d+)\.(\d+)', latest_tag).groups())13if increment == 'X':14major += 115minor, patch = 0, 016elif increment == 'Y':17minor += 118patch = 019elif increment == 'Z':20patch += 121new_version = f"v{major}.{minor}.{patch}"22return new_version23
24def main():25print("当前最近的Git标签:")26latest_tag = get_latest_tag()27print(latest_tag)28
29print("请选择要递增的版本号部分(X, Y, Z):")30increment = input().upper()31
32while increment not in ['X', 'Y', 'Z']:33print("输入错误,请输入X, Y或Z:")34increment = input().upper()35
36new_version = update_version_number(latest_tag, increment)37print(f"新的版本号为:{new_version}")38
39print("确认更新版本号并推送到远程仓库?(y/n)")40confirmation = input().lower()41
42if confirmation == 'y':43subprocess.run(['git', 'tag', new_version])44subprocess.run(['git', 'push', 'origin', new_version])45print("新版本号已创建并推送到远程仓库。")46else:47print("操作已取消。")48
49if __name__ == '__main__':50main()51