@@ -17,12 +17,19 @@ def main(version_str: str) -> None:
17
17
if repo .is_dirty ():
18
18
raise RuntimeError ("Current repository is dirty. Please commit any changes and try again." )
19
19
upstream , release_branch = create_release_branch (repo , version )
20
- release_commit = release_changelog (repo , version )
21
- tag = tag_release_commit (release_commit , repo , version )
22
- print ("push release commit" )
23
- repo .git .push (upstream .name , release_branch )
24
- print ("push release tag" )
25
- repo .git .push (upstream .name , tag )
20
+ try :
21
+ release_commit = release_changelog (repo , version )
22
+ tag = tag_release_commit (release_commit , repo , version )
23
+ print ("push release commit" )
24
+ repo .git .push (upstream .name , f"{ release_branch } :main" , "-f" )
25
+ print ("push release tag" )
26
+ repo .git .push (upstream .name , tag , "-f" )
27
+ finally :
28
+ print ("checkout main to new release and delete release branch" )
29
+ repo .heads .main .checkout ()
30
+ repo .delete_head (release_branch )
31
+ upstream .fetch ()
32
+ repo .git .reset ("--hard upstream/main" )
26
33
print ("All done! ✨ 🍰 ✨" )
27
34
28
35
0 commit comments