@@ -9,12 +9,11 @@ platform :swift do
9
9
sh ( 'git' , 'fetch' )
10
10
end
11
11
12
- desc "Create a release version by building and committing a changelog, pushing a tag to GitHub "
13
- lane :release do
12
+ desc "Preparing next release by building and committing a changelog, updating the component version, and creating a PR to main "
13
+ lane :prepare_release do
14
14
next_version , commits = calculate_next_release_version
15
15
16
- UI . message ( "Releasing version: #{ next_version } " )
17
-
16
+ UI . message ( "Kicking off new release for version: #{ next_version } " )
18
17
# Increment all specs and plists
19
18
increment_versions ( version : next_version )
20
19
@@ -25,11 +24,16 @@ platform :swift do
25
24
# Update Package dependencies
26
25
sh ( 'bundle' , 'exec' , 'swift' , 'package' , 'update' )
27
26
27
+ # Create and push the new branch
28
+ release_branch = "release/#{ next_version } "
29
+ sh ( 'git' , 'checkout' , '-b' , release_branch )
30
+ sh ( 'git' , 'push' , '--set-upstream' , 'origin' , release_branch )
31
+
28
32
# Commit and push
29
- release_commit ( version : next_version )
33
+ pr_title = release_commit ( version : next_version ) . to_s
30
34
31
- # Create tag and push to origin
32
- add_tag ( version : next_version )
35
+ # Open the PR to main
36
+ sh ( 'gh' , 'pr' , 'create' , '--title' , pr_title , '--body' , 'Kicking off new release' , '--base' , 'ruisebas/main' , '--head' , release_branch )
33
37
end
34
38
35
39
desc "Increment versions"
@@ -45,20 +49,29 @@ platform :swift do
45
49
sh ( 'git' , 'config' , '--global' , 'user.email' , ENV [ 'GITHUB_EMAIL' ] )
46
50
sh ( 'git' , 'config' , '--global' , 'user.name' , ENV [ 'GITHUB_USER' ] )
47
51
48
- commit_message = "chore: Release #{ next_version } [skip ci] "
52
+ commit_message = "chore: Release #{ next_version } "
49
53
sh ( 'git' , 'commit' , '-am' , commit_message )
54
+ sh ( 'git' , 'push' )
55
+ commit_message
56
+ end
50
57
51
- # push to origin
52
- sh ( 'git' , 'push' , 'origin' , 'release' )
53
- sh ( 'git' , 'push' , 'origin' , 'release:main' )
58
+ desc "Push a new tag to GitHub and creating a new draft release"
59
+ lane :perform_release do |options |
60
+ next_version = options [ :version ]
61
+ # Create and push the new tag
62
+ add_tag ( version : next_version )
63
+
64
+ # Create draft release
65
+ release_title = sh ( "echo $(date +%F)" )
66
+ sh ( 'gh' , 'release' , 'create' , '--draft' , '--verify-tag' , '--title' , release_title )
54
67
end
55
68
56
69
desc "Tag in git and push to GitHub"
57
70
private_lane :add_tag do |options |
58
- next_version = options [ :version ]
59
- next_tag = "#{ next_version } "
71
+ next_tag = options [ :version ] . to_s
60
72
61
- add_git_tag ( tag : next_tag )
62
- push_git_tags ( tag : next_tag )
73
+ puts "Creating new tag #{ next_tag } "
74
+ #add_git_tag(tag: next_tag)
75
+ #push_git_tags(tag: next_tag)
63
76
end
64
77
end
0 commit comments