Langchain-Chatchat

Форк
0
/
release.py 
50 строк · 1.5 Кб
1
import os
2
import subprocess
3
import re
4

5
def get_latest_tag():
6
    output = subprocess.check_output(['git', 'tag'])
7
    tags = output.decode('utf-8').split('\n')[:-1]
8
    latest_tag = sorted(tags, key=lambda t: tuple(map(int, re.match(r'v(\d+)\.(\d+)\.(\d+)', t).groups())))[-1]
9
    return latest_tag
10

11
def update_version_number(latest_tag, increment):
12
    major, minor, patch = map(int, re.match(r'v(\d+)\.(\d+)\.(\d+)', latest_tag).groups())
13
    if increment == 'X':
14
        major += 1
15
        minor, patch = 0, 0
16
    elif increment == 'Y':
17
        minor += 1
18
        patch = 0
19
    elif increment == 'Z':
20
        patch += 1
21
    new_version = f"v{major}.{minor}.{patch}"
22
    return new_version
23

24
def main():
25
    print("当前最近的Git标签:")
26
    latest_tag = get_latest_tag()
27
    print(latest_tag)
28

29
    print("请选择要递增的版本号部分(X, Y, Z):")
30
    increment = input().upper()
31

32
    while increment not in ['X', 'Y', 'Z']:
33
        print("输入错误,请输入X, Y或Z:")
34
        increment = input().upper()
35

36
    new_version = update_version_number(latest_tag, increment)
37
    print(f"新的版本号为:{new_version}")
38

39
    print("确认更新版本号并推送到远程仓库?(y/n)")
40
    confirmation = input().lower()
41

42
    if confirmation == 'y':
43
        subprocess.run(['git', 'tag', new_version])
44
        subprocess.run(['git', 'push', 'origin', new_version])
45
        print("新版本号已创建并推送到远程仓库。")
46
    else:
47
        print("操作已取消。")
48

49
if __name__ == '__main__':
50
    main()
51

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.