@@ -9,12 +9,11 @@ platform :swift do
99 sh ( 'git' , 'fetch' )
1010 end
1111
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
1414 next_version , commits = calculate_next_release_version
1515
16- UI . message ( "Releasing version: #{ next_version } " )
17-
16+ UI . message ( "Kicking off new release for version: #{ next_version } " )
1817 # Increment all specs and plists
1918 increment_versions ( version : next_version )
2019
@@ -25,11 +24,17 @@ platform :swift do
2524 # Update Package dependencies
2625 sh ( 'bundle' , 'exec' , 'swift' , 'package' , 'update' )
2726
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+
2832 # Commit and push
2933 release_commit ( version : next_version )
3034
31- # Create tag and push to origin
32- add_tag ( version : next_version )
35+ # Open the PR to main
36+ #pr_title = "chore: Release #{next_version}"
37+ sh ( 'gh' , 'pr' , 'create' , '--head' , 'main' )
3338 end
3439
3540 desc "Increment versions"
@@ -45,20 +50,28 @@ platform :swift do
4550 sh ( 'git' , 'config' , '--global' , 'user.email' , ENV [ 'GITHUB_EMAIL' ] )
4651 sh ( 'git' , 'config' , '--global' , 'user.name' , ENV [ 'GITHUB_USER' ] )
4752
48- commit_message = "chore: Release #{ next_version } [skip ci] "
53+ commit_message = "chore: Release #{ next_version } "
4954 sh ( 'git' , 'commit' , '-am' , commit_message )
55+ sh ( 'git' , 'push' )
56+ end
5057
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 )
5467 end
5568
5669 desc "Tag in git and push to GitHub"
5770 private_lane :add_tag do |options |
58- next_version = options [ :version ]
59- next_tag = "#{ next_version } "
71+ next_tag = options [ :version ] . to_s
6072
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)
6376 end
6477end
0 commit comments