Skip to content

Commit

Permalink
Add release.py
Browse files Browse the repository at this point in the history
  • Loading branch information
calcitem committed Apr 15, 2023
1 parent b2917b0 commit 88941d3
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions release.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import os
import subprocess
import re

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

def update_version_number(latest_tag, increment):
major, minor, patch = map(int, re.match(r'v(\d+)\.(\d+)\.(\d+)', latest_tag).groups())
if increment == 'X':
major += 1
minor, patch = 0, 0
elif increment == 'Y':
minor += 1
patch = 0
elif increment == 'Z':
patch += 1
new_version = f"v{major}.{minor}.{patch}"
return new_version

def main():
print("当前最近的Git标签:")
latest_tag = get_latest_tag()
print(latest_tag)

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

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

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

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

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

if __name__ == '__main__':
main()

0 comments on commit 88941d3

Please sign in to comment.