|
17 | 17 | releaseNotesDefault = "Bug fixes and other improvements" |
18 | 18 | releaseNotesBodyHeader = "What's new:" |
19 | 19 | releaseNotesFileBody = "../app/version/release-notes" |
20 | | - appVersionFilePath = "../app/version/version-properties" |
| 20 | + appVersionFilePath = "../app/version/version.properties" |
21 | 21 | releaseNotesLocales= ["en-US", "en-GB", "en-CA"] |
22 | 22 | releaseNotesMaxLength = 500 |
23 | 23 | errorMessageCancelled = "Release cancelled 😢" |
@@ -233,43 +233,76 @@ platform :android do |
233 | 233 | releaseNotesLocales.each do |locale| |
234 | 234 | sh("rm '../fastlane/metadata/android/#{locale}/changelogs/#{flversion}.txt'") |
235 | 235 | end |
| 236 | + end |
| 237 | + |
| 238 | + desc "Create a new release branch and update the version" |
| 239 | + lane :tag_and_push_release_version do |options| |
| 240 | + app_version = options[:app_version] |
| 241 | + |
| 242 | + UI.message("App version for fastlane is #{app_version}.") |
| 243 | + |
| 244 | + # Define the branch name |
| 245 | + branch_name = "release/#{app_version}" |
| 246 | + |
| 247 | + # Create a new release branch |
| 248 | + sh("git checkout -b #{branch_name}") |
236 | 249 |
|
| 250 | + File.open(appVersionFilePath, 'w') do |file| |
| 251 | + file.write("VERSION=#{app_version}") |
237 | 252 | end |
238 | 253 |
|
| 254 | + git_commit( |
| 255 | + message: "Updated version number for new release - #{app_version}", |
| 256 | + path: "*", |
| 257 | + allow_nothing_to_commit: true, |
| 258 | + skip_git_hooks: true |
| 259 | + ) |
| 260 | + |
| 261 | + sh "git checkout main" |
| 262 | + sh "git merge --no-ff release/#{app_version}" |
| 263 | + sh "git tag -a #{app_version} -m #{app_version}" |
| 264 | + sh "git checkout develop" |
| 265 | + sh "git merge --no-ff release/#{app_version}" |
| 266 | + sh "git branch -d release/#{app_version}" |
| 267 | + |
| 268 | + UI.success("Release branch #{branch_name} created successfully!") |
| 269 | + |
| 270 | + push_git_tags(tag: app_version) |
| 271 | + sh "git push origin main" |
| 272 | + sh "git push origin develop" |
| 273 | + |
| 274 | + UI.header("#{app_version} tag has been successfully created. 🎉") |
| 275 | + end |
| 276 | + |
239 | 277 | # Usage - fastlane android tag_and_release_version app_version:0.0.2 release_notes:Testing |
240 | 278 | # If release notes are not provided, the default ones will be used |
241 | 279 | desc "Tag and release a new app version" |
242 | 280 | lane :tag_and_release_version do |options| |
243 | 281 | options_release_number = options[:app_version] |
244 | | - options_release_notes = options[:release_notes] |
245 | 282 |
|
246 | | - releaseNotes = determine_release_notes(releaseNotes: options_release_notes) |
| 283 | + UI.message("Release number = #{options_release_number}") |
247 | 284 |
|
248 | | - update_app_version_and_release_notes(newVersion: options_release_number, newReleaseNotes: releaseNotes) |
| 285 | + update_app_version(releaseNumber: options_release_number) |
249 | 286 | do_create_and_push_tags(newVersion: options_release_number) |
250 | 287 |
|
251 | 288 | end |
252 | 289 |
|
253 | 290 | desc "Updates app version and release notes" |
254 | | - private_lane :update_app_version_and_release_notes do |options| |
255 | | - newVersion = options[:newVersion] |
256 | | - releaseNotes = options[:newReleaseNotes] |
257 | | - sh "git checkout -b release/#{newVersion} develop" |
| 291 | + private_lane :update_app_version do |options| |
| 292 | + newVersion = options[:releaseNumber] |
| 293 | + sh "git checkout -b release/'#{newVersion}' develop" |
258 | 294 |
|
259 | 295 | File.open(appVersionFilePath, 'w') do |file| |
260 | 296 | file.write("VERSION=#{newVersion}") |
261 | 297 | end |
262 | 298 |
|
263 | | - File.open(releaseNotesFilePath, 'w') do |file| |
264 | | - file.write("""#{releaseNotes}""") |
265 | | - end |
266 | | - |
267 | 299 | git_commit( |
268 | | - message: "Updated release notes and version number for new release - #{newVersion}", |
| 300 | + message: "Updated version number for new release - #{newVersion}", |
269 | 301 | path: "*", |
270 | 302 | allow_nothing_to_commit: true, |
271 | 303 | skip_git_hooks: true |
272 | 304 | ) |
| 305 | + |
273 | 306 | end |
274 | 307 |
|
275 | 308 | # Note, this currently relies on having `git flow` tools installed. |
@@ -319,7 +352,7 @@ platform :android do |
319 | 352 | private_lane :do_create_release_branch do |options| |
320 | 353 | newVersion = options[:newVersion] |
321 | 354 | releaseNotes = options[:releaseNotes] |
322 | | - sh "git checkout -b release/#{newVersion} develop" |
| 355 | + sh "git checkout -b release/'#{newVersion}' develop" |
323 | 356 |
|
324 | 357 | File.open('../app/version/version.properties', 'w') do |file| |
325 | 358 | file.write("VERSION=#{newVersion}") |
|
0 commit comments