fastlane-plugin-wpmreleasetoolkit 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (19) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_betabuild_prechecks.rb +12 -6
  3. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_build_prechecks.rb +11 -5
  4. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_beta.rb +24 -24
  5. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_final_release.rb +25 -22
  6. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_hotfix.rb +20 -22
  7. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_release.rb +29 -38
  8. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_codefreeze_prechecks.rb +14 -7
  9. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_completecodefreeze_prechecks.rb +8 -2
  10. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_current_branch_is_hotfix.rb +9 -1
  11. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_finalize_prechecks.rb +5 -1
  12. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_alpha_version.rb +7 -1
  13. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_app_version.rb +7 -1
  14. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_release_version.rb +7 -1
  15. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_tag_build.rb +9 -3
  16. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_git_helper.rb +14 -5
  17. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_version_helper.rb +104 -46
  18. data/lib/fastlane/plugin/wpmreleasetoolkit/version.rb +1 -1
  19. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d9be2ee64770a3941008419d8e2ecf628602daf4eec75ea263ba01e9e65c68c
4
- data.tar.gz: d086e3da1934ec77a8bf9eb32d1353bf421777d23b862d42be9710f0067dcb59
3
+ metadata.gz: ee442d259b9c2e9f6ade7505aa2a7cf4a87d01e13ae68abc6d93d1b45b67b931
4
+ data.tar.gz: caca4af2ab1e2d1b973c199a8a2bf2907f21403fa862e1439047b3740471a8da
5
5
  SHA512:
6
- metadata.gz: b610679c97791c79e672d13b45c113a704d148cc19452b06344f3bb8b3f4a8352ba395aa1b8d6c124f193a11fedede7db0e3bb8c80deb56bfee42c8f7e8f659a
7
- data.tar.gz: 7df6ece08b5d4f4f408de507b660c09864121147ff2db52406efc04edfd1fa15f368384e8e7d1073b0e3acc61ec694558e4e7e25e40b1f5cfddc367d8ee2b55c
6
+ metadata.gz: e0a43dc1b67ce99bb8afb213bf0826fa51c6241ebc4ab406c885d37dcfb5821b6a4fd7d0b23dcb2005d42efd14f07af59b4cc6401738b5de10e1b0bc8cce0d56
7
+ data.tar.gz: 3acc819e9b7cc00eb406fbae062910d638bdc799fbc26e53f20d6c07b51bdd1a20ddaa41b83dcc20b323bc3cd333ea93e5f365494792e8ec7f47a8abdf852f22
@@ -11,11 +11,13 @@ module Fastlane
11
11
  # Checkout develop and update
12
12
  Fastlane::Helper::GitHelper.checkout_and_pull('develop')
13
13
 
14
+ app = params[:app]
15
+
14
16
  # Check versions
15
- release_version = Fastlane::Helper::Android::VersionHelper.get_release_version
16
- message = "The following current version has been detected: #{release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}\n"
17
- alpha_release_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version
18
- message << "The following Alpha version has been detected: #{alpha_release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}\n" unless alpha_release_version.nil?
17
+ release_version = Fastlane::Helper::Android::VersionHelper.get_release_version(app)
18
+ message = "[#{app}] The following current version has been detected: #{release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}\n"
19
+ alpha_release_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version(app)
20
+ message << "[#{app}] The following Alpha version has been detected: #{alpha_release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}\n" unless alpha_release_version.nil?
19
21
 
20
22
  # Check branch
21
23
  app_version = Fastlane::Helper::Android::VersionHelper.get_public_version
@@ -48,9 +50,9 @@ module Fastlane
48
50
  end
49
51
 
50
52
  def self.get_user_build_version(version, message)
51
- UI.user_error!("Release branch for version #{version} doesn't exist. Abort.") unless Fastlane::Helper::GitHelper.checkout_and_pull(release: version)
53
+ UI.user_error!("[#{app}] Release branch for version #{version} doesn't exist. Abort.") unless Fastlane::Helper::GitHelper.checkout_and_pull(release: version)
52
54
  release_version = Fastlane::Helper::Android::VersionHelper.get_release_version
53
- message << "Looking at branch release/#{version} as requested by user. Detected version: #{release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}.\n"
55
+ message << "#{app}] Looking at branch release/#{version} as requested by user. Detected version: #{release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}.\n"
54
56
  alpha_release_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version
55
57
  message << "and Alpha Version: #{alpha_release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}\n" unless alpha_release_version.nil?
56
58
  [release_version, alpha_release_version]
@@ -80,6 +82,10 @@ module Fastlane
80
82
  description: 'Skips confirmation',
81
83
  is_string: false, # true: verifies the input is a string, false: every kind of value
82
84
  default_value: false), # the default value if the user didn't provide one
85
+ FastlaneCore::ConfigItem.new(key: :app,
86
+ env_name: 'PROJECT_NAME',
87
+ description: 'The name of the app to get the release version for',
88
+ is_string: true), # true: verifies the input is a string, false: every kind of value
83
89
  ]
84
90
  end
85
91
 
@@ -3,20 +3,22 @@ module Fastlane
3
3
  class AndroidBuildPrechecksAction < Action
4
4
  def self.run(params)
5
5
  require_relative '../../helper/android/android_version_helper'
6
+ require_relative '../../helper/git_helper'
6
7
 
7
8
  UI.user_error!("Can't build beta and final at the same time!") if params[:final] && params[:beta]
8
9
 
9
10
  Fastlane::Helper::GitHelper.ensure_on_branch!('release') unless other_action.is_ci()
10
11
 
12
+ app = params[:app]
11
13
  message = ''
12
- beta_version = Fastlane::Helper::Android::VersionHelper.get_release_version() unless !params[:beta] && !params[:final]
13
- alpha_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version() if params[:alpha]
14
+ beta_version = Fastlane::Helper::Android::VersionHelper.get_release_version(app) unless !params[:beta] && !params[:final]
15
+ alpha_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version(app) if params[:alpha]
14
16
 
15
17
  UI.user_error!("Can't build a final release out of this branch because it's configured as a beta release!") if params[:final] && Fastlane::Helper::Android::VersionHelper.is_beta_version?(beta_version)
16
18
 
17
- message << "Building version #{beta_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{beta_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}) (for upload to Release Channel)\n" if params[:final]
18
- message << "Building version #{beta_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{beta_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}) (for upload to Beta Channel)\n" if params[:beta]
19
- message << "Building version #{alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}) (for upload to Alpha Channel)\n" if params[:alpha]
19
+ message << "[#{app}] Building version #{beta_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{beta_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}) (for upload to Release Channel)\n" if params[:final]
20
+ message << "[#{app}] Building version #{beta_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{beta_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}) (for upload to Beta Channel)\n" if params[:beta]
21
+ message << "[#{app}] Building version #{alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}) (for upload to Alpha Channel)\n" if params[:alpha]
20
22
 
21
23
  if params[:skip_confirm]
22
24
  UI.message(message)
@@ -62,6 +64,10 @@ module Fastlane
62
64
  description: 'True if this is for a final build',
63
65
  is_string: false,
64
66
  default_value: false),
67
+ FastlaneCore::ConfigItem.new(key: :app,
68
+ env_name: 'PROJECT_NAME',
69
+ description: 'The name of the app to get the release version for',
70
+ is_string: true), # true: verifies the input is a string, false: every kind of value
65
71
  ]
66
72
  end
67
73
 
@@ -8,11 +8,22 @@ module Fastlane
8
8
  require_relative '../../helper/android/android_version_helper'
9
9
 
10
10
  Fastlane::Helper::GitHelper.ensure_on_branch!('release')
11
- create_config()
12
- show_config()
11
+ app = params[:app]
13
12
 
14
- UI.message 'Updating build.gradle...'
15
- Fastlane::Helper::Android::VersionHelper.update_versions(@new_version_beta, @new_version_alpha)
13
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(product_name: app)
14
+ current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version(app)
15
+ new_version_beta = Fastlane::Helper::Android::VersionHelper.calc_next_beta_version(current_version, current_version_alpha)
16
+ new_version_alpha = current_version_alpha.nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(new_version_beta, current_version_alpha)
17
+
18
+ vname = Fastlane::Helper::Android::VersionHelper::VERSION_NAME
19
+ vcode = Fastlane::Helper::Android::VersionHelper::VERSION_CODE
20
+ UI.message("Current version[#{app}]: #{current_version[vname]}(#{current_version[vcode]})")
21
+ UI.message("Current alpha version[#{app}]: #{current_version_alpha[vname]}(#{current_version_alpha[vcode]})") unless current_version_alpha.nil?
22
+ UI.message("New beta version[#{app}]: #{new_version_beta[vname]}(#{new_version_beta[vcode]})")
23
+ UI.message("New alpha version[#{app}]: #{new_version_alpha[vname]}(#{new_version_alpha[vcode]})") unless current_version_alpha.nil?
24
+
25
+ UI.message 'Updating app version...'
26
+ Fastlane::Helper::Android::VersionHelper.update_versions(app, new_version_beta, new_version_alpha)
16
27
  UI.message 'Done!'
17
28
 
18
29
  Fastlane::Helper::Android::GitHelper.commit_version_bump()
@@ -23,14 +34,21 @@ module Fastlane
23
34
  #####################################################
24
35
 
25
36
  def self.description
26
- 'Bumps the version of the app for a new beta'
37
+ 'Bumps the version of the app for a new beta. Requires the `updateVersionProperties` gradle task to update the keys if you are using a `version.properties` file.'
27
38
  end
28
39
 
29
40
  def self.details
30
- 'Bumps the version of the app for a new beta'
41
+ 'Bumps the version of the app for a new beta. Requires the `updateVersionProperties` gradle task to update the keys if you are using a `version.properties` file.'
31
42
  end
32
43
 
33
44
  def self.available_options
45
+ # Define all options your action supports.
46
+ [
47
+ FastlaneCore::ConfigItem.new(key: :app,
48
+ env_name: 'PROJECT_NAME',
49
+ description: 'The name of the app to get the release version for',
50
+ is_string: true), # true: verifies the input is a string, false: every kind of value
51
+ ]
34
52
  end
35
53
 
36
54
  def self.output
@@ -46,24 +64,6 @@ module Fastlane
46
64
  def self.is_supported?(platform)
47
65
  platform == :android
48
66
  end
49
-
50
- private
51
-
52
- def self.create_config
53
- @current_version = Fastlane::Helper::Android::VersionHelper.get_release_version()
54
- @current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version()
55
- @new_version_beta = Fastlane::Helper::Android::VersionHelper.calc_next_beta_version(@current_version, @current_version_alpha)
56
- @new_version_alpha = ENV['HAS_ALPHA_VERSION'].nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(@new_version_beta, @current_version_alpha)
57
- end
58
-
59
- def self.show_config
60
- vname = Fastlane::Helper::Android::VersionHelper::VERSION_NAME
61
- vcode = Fastlane::Helper::Android::VersionHelper::VERSION_CODE
62
- UI.message("Current version: #{@current_version[vname]}(#{@current_version[vcode]})")
63
- UI.message("Current alpha version: #{@current_version_alpha[vname]}(#{@current_version_alpha[vcode]})") unless ENV['HAS_ALPHA_VERSION'].nil?
64
- UI.message("New beta version: #{@new_version_beta[vname]}(#{@new_version_beta[vcode]})")
65
- UI.message("New alpha version: #{@new_version_alpha[vname]}(#{@new_version_alpha[vcode]})") unless ENV['HAS_ALPHA_VERSION'].nil?
66
- end
67
67
  end
68
68
  end
69
69
  end
@@ -8,11 +8,20 @@ module Fastlane
8
8
  require_relative '../../helper/android/android_version_helper'
9
9
 
10
10
  Fastlane::Helper::GitHelper.ensure_on_branch!('release')
11
- create_config()
12
- show_config()
11
+ app = params[:app]
13
12
 
14
- UI.message 'Updating gradle.properties...'
15
- Fastlane::Helper::Android::VersionHelper.update_versions(@final_version, @current_version_alpha)
13
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(product_name: app)
14
+ current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version(app)
15
+ final_version = Fastlane::Helper::Android::VersionHelper.calc_final_release_version(current_version, current_version_alpha)
16
+
17
+ vname = Fastlane::Helper::Android::VersionHelper::VERSION_NAME
18
+ vcode = Fastlane::Helper::Android::VersionHelper::VERSION_CODE
19
+ UI.message("Current version[#{app}]: #{current_version[vname]}(#{current_version[vcode]})")
20
+ UI.message("Current alpha version[#{app}]: #{current_version_alpha[vname]}(#{current_version_alpha[vcode]})") unless current_version_alpha.nil?
21
+ UI.message("New release version[#{app}]: #{final_version[vname]}(#{final_version[vcode]})")
22
+
23
+ UI.message 'Updating app version...'
24
+ Fastlane::Helper::Android::VersionHelper.update_versions(app, final_version, current_version_alpha)
16
25
  UI.message 'Done!'
17
26
 
18
27
  Fastlane::Helper::Android::GitHelper.commit_version_bump()
@@ -23,11 +32,21 @@ module Fastlane
23
32
  #####################################################
24
33
 
25
34
  def self.description
26
- 'Bumps the version of the app for a new beta'
35
+ 'Bumps the version of the app for a new beta. Requires the `updateVersionProperties` gradle task to update the keys if you are using a `version.properties` file.'
27
36
  end
28
37
 
29
38
  def self.details
30
- 'Bumps the version of the app for a new beta'
39
+ 'Bumps the version of the app for a new beta. Requires the `updateVersionProperties` gradle task to update the keys if you are using a `version.properties` file.'
40
+ end
41
+
42
+ def self.available_options
43
+ # Define all options your action supports.
44
+ [
45
+ FastlaneCore::ConfigItem.new(key: :app,
46
+ env_name: 'PROJECT_NAME',
47
+ description: 'The name of the app to get the release version for',
48
+ is_string: true), # true: verifies the input is a string, false: every kind of value
49
+ ]
31
50
  end
32
51
 
33
52
  def self.authors
@@ -37,22 +56,6 @@ module Fastlane
37
56
  def self.is_supported?(platform)
38
57
  platform == :android
39
58
  end
40
-
41
- private
42
-
43
- def self.create_config
44
- @current_version = Fastlane::Helper::Android::VersionHelper.get_release_version()
45
- @current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version()
46
- @final_version = Fastlane::Helper::Android::VersionHelper.calc_final_release_version(@current_version, @current_version_alpha)
47
- end
48
-
49
- def self.show_config
50
- vname = Fastlane::Helper::Android::VersionHelper::VERSION_NAME
51
- vcode = Fastlane::Helper::Android::VersionHelper::VERSION_CODE
52
- UI.message("Current version: #{@current_version[vname]}(#{@current_version[vcode]})")
53
- UI.message("Current alpha version: #{@current_version_alpha[vname]}(#{@current_version_alpha[vcode]})") unless ENV['HAS_ALPHA_VERSION'].nil?
54
- UI.message("New release version: #{@final_version[vname]}(#{@final_version[vcode]})")
55
- end
56
59
  end
57
60
  end
58
61
  end
@@ -6,11 +6,21 @@ module Fastlane
6
6
 
7
7
  require_relative '../../helper/android/android_git_helper'
8
8
  Fastlane::Helper::GitHelper.create_branch("release/#{params[:version_name]}", from: params[:previous_version_name])
9
- create_config(params[:previous_version_name], params[:version_name], params[:version_code])
10
- show_config()
11
9
 
12
- UI.message 'Updating build.gradle...'
13
- Fastlane::Helper::Android::VersionHelper.update_versions(@new_version, @current_version_alpha)
10
+ app = params[:app]
11
+
12
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(product_name: app)
13
+ current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version(app)
14
+ new_version = Fastlane::Helper::Android::VersionHelper.calc_next_hotfix_version(params[:version_name], params[:version_code])
15
+ new_short_version = new_version_name
16
+ new_release_branch = "release/#{new_short_version}"
17
+
18
+ UI.message("Current version[#{app}]: #{current_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{current_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]})")
19
+ UI.message("New hotfix version[#{app}]: #{new_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{new_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]})")
20
+ UI.message("Release branch: #{new_release_branch}")
21
+
22
+ UI.message 'Updating app version...'
23
+ Fastlane::Helper::Android::VersionHelper.update_versions(app, new_version, current_version_alpha)
14
24
  UI.message 'Done!'
15
25
 
16
26
  Fastlane::Helper::Android::GitHelper.commit_version_bump()
@@ -23,11 +33,11 @@ module Fastlane
23
33
  #####################################################
24
34
 
25
35
  def self.description
26
- 'Bumps the version of the app and creates the new release branch'
36
+ 'Bumps the version of the app for a new beta. Requires the `updateVersionProperties` gradle task to update the keys if you are using a `version.properties` file.'
27
37
  end
28
38
 
29
39
  def self.details
30
- 'Bumps the version of the app and creates the new release branch'
40
+ 'Bumps the version of the app for a new beta. Requires the `updateVersionProperties` gradle task to update the keys if you are using a `version.properties` file.'
31
41
  end
32
42
 
33
43
  def self.available_options
@@ -46,6 +56,10 @@ module Fastlane
46
56
  env_name: 'FL_ANDROID_BUMP_VERSION_HOTFIX_PREVIOUS_VERSION',
47
57
  description: 'The version to branch from',
48
58
  is_string: true), # the default value if the user didn't provide one
59
+ FastlaneCore::ConfigItem.new(key: :app,
60
+ env_name: 'PROJECT_NAME',
61
+ description: 'The name of the app to get the release version for',
62
+ is_string: true), # true: verifies the input is a string, false: every kind of value
49
63
  ]
50
64
  end
51
65
 
@@ -56,22 +70,6 @@ module Fastlane
56
70
  def self.is_supported?(platform)
57
71
  platform == :android
58
72
  end
59
-
60
- private
61
-
62
- def self.create_config(previous_version, new_version_name, new_version_code)
63
- @current_version = Fastlane::Helper::Android::VersionHelper.get_release_version()
64
- @current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version()
65
- @new_version = Fastlane::Helper::Android::VersionHelper.calc_next_hotfix_version(new_version_name, new_version_code)
66
- @new_short_version = new_version_name
67
- @new_release_branch = "release/#{@new_short_version}"
68
- end
69
-
70
- def self.show_config
71
- UI.message("Current version: #{@current_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{@current_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]})")
72
- UI.message("New hotfix version: #{@new_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}(#{@new_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]})")
73
- UI.message("Release branch: #{@new_release_branch}")
74
- end
75
73
  end
76
74
  end
77
75
  end
@@ -11,17 +11,31 @@ module Fastlane
11
11
  other_action.ensure_git_branch(branch: 'develop')
12
12
 
13
13
  # Create new configuration
14
- @new_short_version = Fastlane::Helper::Android::VersionHelper.bump_version_release()
15
- create_config()
16
- show_config()
14
+ app = params[:app]
15
+ new_short_version = Fastlane::Helper::Android::VersionHelper.bump_version_release(app)
16
+
17
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(product_name: app)
18
+ current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version(app)
19
+ new_version_beta = Fastlane::Helper::Android::VersionHelper.calc_next_release_version(current_version, current_version_alpha)
20
+ new_version_alpha = current_version_alpha.nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(new_version_beta, current_version_alpha)
21
+ new_release_branch = "release/#{new_short_version}"
22
+
23
+ vname = Fastlane::Helper::Android::VersionHelper::VERSION_NAME
24
+ vcode = Fastlane::Helper::Android::VersionHelper::VERSION_CODE
25
+ UI.message("Current version[#{app}]: #{current_version[vname]}(#{current_version[vcode]})")
26
+ UI.message("Current alpha version[#{app}]: #{current_version_alpha[vname]}(#{current_version_alpha[vcode]})") unless current_version_alpha.nil?
27
+ UI.message("New beta version[#{app}]: #{new_version_beta[vname]}(#{new_version_beta[vcode]})")
28
+ UI.message("New alpha version[#{app}]: #{new_version_alpha[vname]}(#{new_version_alpha[vcode]})") unless current_version_alpha.nil?
29
+ UI.message("New version[#{app}]: #{new_short_version}")
30
+ UI.message("Release branch: #{new_release_branch}")
17
31
 
18
32
  # Update local develop and branch
19
33
  UI.message 'Creating new branch...'
20
- Fastlane::Helper::GitHelper.create_branch(@new_release_branch, from: 'develop')
34
+ Fastlane::Helper::GitHelper.create_branch(new_release_branch, from: 'develop')
21
35
  UI.message 'Done!'
22
36
 
23
- UI.message 'Updating versions...'
24
- Fastlane::Helper::Android::VersionHelper.update_versions(@new_version_beta, @new_version_alpha)
37
+ UI.message 'Updating app version...'
38
+ Fastlane::Helper::Android::VersionHelper.update_versions(app, new_version_beta, new_version_alpha)
25
39
  Fastlane::Helper::Android::GitHelper.commit_version_bump()
26
40
  UI.message 'Done.'
27
41
  end
@@ -31,14 +45,21 @@ module Fastlane
31
45
  #####################################################
32
46
 
33
47
  def self.description
34
- 'Bumps the version of the app and creates the new release branch'
48
+ 'Bumps the version of the app for a new beta. Requires the `updateVersionProperties` gradle task to update the keys if you are using a `version.properties` file.'
35
49
  end
36
50
 
37
51
  def self.details
38
- 'Bumps the version of the app and creates the new release branch'
52
+ 'Bumps the version of the app for a new beta. Requires the `updateVersionProperties` gradle task to update the keys if you are using a `version.properties` file.'
39
53
  end
40
54
 
41
55
  def self.available_options
56
+ # Define all options your action supports.
57
+ [
58
+ FastlaneCore::ConfigItem.new(key: :app,
59
+ env_name: 'PROJECT_NAME',
60
+ description: 'The name of the app to get the release version for',
61
+ is_string: true), # true: verifies the input is a string, false: every kind of value
62
+ ]
42
63
  end
43
64
 
44
65
  def self.output
@@ -54,36 +75,6 @@ module Fastlane
54
75
  def self.is_supported?(platform)
55
76
  platform == :android
56
77
  end
57
-
58
- private
59
-
60
- def self.create_config
61
- @current_version = Fastlane::Helper::Android::VersionHelper.get_release_version()
62
- @current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version()
63
- @new_version_beta = Fastlane::Helper::Android::VersionHelper.calc_next_release_version(@current_version, @current_version_alpha)
64
- @new_version_alpha = ENV['HAS_ALPHA_VERSION'].nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(@new_version_beta, @current_version_alpha)
65
- @new_release_branch = "release/#{@new_short_version}"
66
- end
67
-
68
- def self.show_config
69
- vname = Fastlane::Helper::Android::VersionHelper::VERSION_NAME
70
- vcode = Fastlane::Helper::Android::VersionHelper::VERSION_CODE
71
- UI.message("Current version: #{@current_version[vname]}(#{@current_version[vcode]})")
72
- UI.message("Current alpha version: #{@current_version_alpha[vname]}(#{@current_version_alpha[vcode]})") unless ENV['HAS_ALPHA_VERSION'].nil?
73
- UI.message("New beta version: #{@new_version_beta[vname]}(#{@new_version_beta[vcode]})")
74
- UI.message("New alpha version: #{@new_version_alpha[vname]}(#{@new_version_alpha[vcode]})") unless ENV['HAS_ALPHA_VERSION'].nil?
75
- UI.message("New version: #{@new_short_version}")
76
- UI.message("Release branch: #{@new_release_branch}")
77
- end
78
-
79
- def self.update_glotpress_key
80
- dm_file = ENV['DOWNLOAD_METADATA']
81
- if File.exist?(dm_file)
82
- sh("sed -i '' \"s/let glotPressWhatsNewKey.*/let glotPressWhatsNewKey = \\\"v#{@new_short_version}-whats-new\\\"/\" #{dm_file}")
83
- else
84
- UI.user_error!("Can't find #{dm_file}.")
85
- end
86
- end
87
78
  end
88
79
  end
89
80
  end
@@ -14,18 +14,21 @@ module Fastlane
14
14
  # Checkout develop and update
15
15
  Fastlane::Helper::GitHelper.checkout_and_pull('develop')
16
16
 
17
+ app = params[:app]
18
+
17
19
  # Create versions
18
- current_version = Fastlane::Helper::Android::VersionHelper.get_release_version
19
- current_alpha_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version
20
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(product_name: app)
21
+ current_alpha_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version(app)
20
22
  next_version = Fastlane::Helper::Android::VersionHelper.calc_next_release_version(current_version, current_alpha_version)
21
- next_alpha_version = ENV['HAS_ALPHA_VERSION'].nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(next_version, current_alpha_version)
23
+ next_alpha_version = current_alpha_version.nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(next_version, current_alpha_version)
22
24
 
25
+ no_alpha_version_message = "No alpha version configured. If you wish to configure an alpha version please update version.properties to include an alpha key for this app\n"
23
26
  # Ask user confirmation
24
27
  unless params[:skip_confirm]
25
- confirm_message = "Building a new release branch starting from develop.\nCurrent version is #{current_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{current_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
26
- confirm_message += ENV['HAS_ALPHA_VERSION'].nil? ? "No alpha version configured.\n" : "Current Alpha version is #{current_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{current_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
28
+ confirm_message = "[#{app}]Building a new release branch starting from develop.\nCurrent version is #{current_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{current_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
29
+ confirm_message += current_alpha_version.nil? ? no_alpha_version_message : "Current Alpha version is #{current_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{current_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
27
30
  confirm_message += "After codefreeze the new version will be: #{next_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{next_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
28
- confirm_message += ENV['HAS_ALPHA_VERSION'].nil? ? '' : "After codefreeze the new Alpha will be: #{next_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{next_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
31
+ confirm_message += current_alpha_version.nil? ? '' : "After codefreeze the new Alpha will be: #{next_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{next_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
29
32
  confirm_message += 'Do you want to continue?'
30
33
  UI.user_error!('Aborted by user request') unless UI.confirm(confirm_message)
31
34
  end
@@ -34,7 +37,7 @@ module Fastlane
34
37
  other_action.ensure_git_status_clean()
35
38
 
36
39
  # Return the current version
37
- Fastlane::Helper::Android::VersionHelper.get_public_version
40
+ Fastlane::Helper::Android::VersionHelper.get_public_version(app)
38
41
  end
39
42
 
40
43
  #####################################################
@@ -57,6 +60,10 @@ module Fastlane
57
60
  description: 'Skips confirmation before codefreeze',
58
61
  is_string: false, # true: verifies the input is a string, false: every kind of value
59
62
  default_value: false), # the default value if the user didn't provide one
63
+ FastlaneCore::ConfigItem.new(key: :app,
64
+ env_name: 'PROJECT_NAME',
65
+ description: 'The name of the app to get the release version for',
66
+ is_string: true), # true: verifies the input is a string, false: every kind of value
60
67
  ]
61
68
  end
62
69
 
@@ -9,8 +9,10 @@ module Fastlane
9
9
 
10
10
  UI.user_error!('This is not a release branch. Abort.') unless other_action.git_branch.start_with?('release/')
11
11
 
12
- version = Fastlane::Helper::Android::VersionHelper.get_public_version
13
- message = "Completing code freeze for: #{version}\n"
12
+ app = params[:app]
13
+
14
+ version = Fastlane::Helper::Android::VersionHelper.get_public_version(app)
15
+ message = "Completing code freeze for: [#{app}]#{version}\n"
14
16
  unless params[:skip_confirm]
15
17
  UI.user_error!('Aborted by user request') unless UI.confirm("#{message}Do you want to continue?")
16
18
  else
@@ -42,6 +44,10 @@ module Fastlane
42
44
  description: 'Skips confirmation',
43
45
  is_string: false, # true: verifies the input is a string, false: every kind of value
44
46
  default_value: false), # the default value if the user didn't provide one
47
+ FastlaneCore::ConfigItem.new(key: :app,
48
+ env_name: 'PROJECT_NAME',
49
+ description: 'The name of the app to get the release version for',
50
+ is_string: true), # true: verifies the input is a string, false: every kind of value
45
51
  ]
46
52
  end
47
53
 
@@ -7,7 +7,8 @@ module Fastlane
7
7
  class AndroidCurrentBranchIsHotfixAction < Action
8
8
  def self.run(params)
9
9
  require_relative '../../helper/android/android_version_helper'
10
- Fastlane::Helper::Android::VersionHelper.is_hotfix?(Fastlane::Helper::Android::VersionHelper.get_release_version)
10
+ version = Fastlane::Helper::Android::VersionHelper.get_release_version(product_name: params[:app])
11
+ Fastlane::Helper::Android::VersionHelper.is_hotfix?(version)
11
12
  end
12
13
 
13
14
  #####################################################
@@ -23,6 +24,13 @@ module Fastlane
23
24
  end
24
25
 
25
26
  def self.available_options
27
+ # Define all options your action supports.
28
+ [
29
+ FastlaneCore::ConfigItem.new(key: :app,
30
+ env_name: 'PROJECT_NAME',
31
+ description: 'The name of the app to get the release version for',
32
+ is_string: true), # true: verifies the input is a string, false: every kind of value
33
+ ]
26
34
  end
27
35
 
28
36
  def self.output
@@ -13,7 +13,7 @@ module Fastlane
13
13
 
14
14
  UI.user_error!('This is not a release branch. Abort.') unless other_action.git_branch.start_with?('release/')
15
15
 
16
- version = Fastlane::Helper::Android::VersionHelper.get_public_version
16
+ version = Fastlane::Helper::Android::VersionHelper.get_public_version(params[:app])
17
17
  message = "Finalizing release: #{version}\n"
18
18
  if params[:skip_confirm]
19
19
  UI.message(message)
@@ -49,6 +49,10 @@ module Fastlane
49
49
  description: 'Skips confirmation',
50
50
  is_string: false, # true: verifies the input is a string, false: every kind of value
51
51
  default_value: false), # the default value if the user didn't provide one
52
+ FastlaneCore::ConfigItem.new(key: :app,
53
+ env_name: 'PROJECT_NAME',
54
+ description: 'The name of the app to get the release version for',
55
+ is_string: true), # true: verifies the input is a string, false: every kind of value
52
56
  ]
53
57
  end
54
58
 
@@ -3,7 +3,7 @@ module Fastlane
3
3
  class AndroidGetAlphaVersionAction < Action
4
4
  def self.run(params)
5
5
  require_relative '../../helper/android/android_version_helper'
6
- Fastlane::Helper::Android::VersionHelper.get_alpha_version()
6
+ Fastlane::Helper::Android::VersionHelper.get_alpha_version(params[:app])
7
7
  end
8
8
 
9
9
  #####################################################
@@ -20,6 +20,12 @@ module Fastlane
20
20
 
21
21
  def self.available_options
22
22
  # Define all options your action supports.
23
+ [
24
+ FastlaneCore::ConfigItem.new(key: :app,
25
+ env_name: 'PROJECT_NAME',
26
+ description: 'The name of the app to get the release version for',
27
+ is_string: true), # true: verifies the input is a string, false: every kind of value
28
+ ]
23
29
  end
24
30
 
25
31
  def self.output
@@ -3,7 +3,7 @@ module Fastlane
3
3
  class AndroidGetAppVersionAction < Action
4
4
  def self.run(params)
5
5
  require_relative '../../helper/android/android_version_helper'
6
- Fastlane::Helper::Android::VersionHelper.get_public_version
6
+ Fastlane::Helper::Android::VersionHelper.get_public_version(params[:app])
7
7
  end
8
8
 
9
9
  #####################################################
@@ -20,6 +20,12 @@ module Fastlane
20
20
 
21
21
  def self.available_options
22
22
  # Define all options your action supports.
23
+ [
24
+ FastlaneCore::ConfigItem.new(key: :app,
25
+ env_name: 'PROJECT_NAME',
26
+ description: 'The name of the app to get the release version for',
27
+ is_string: true), # true: verifies the input is a string, false: every kind of value
28
+ ]
23
29
  end
24
30
 
25
31
  def self.output
@@ -3,7 +3,7 @@ module Fastlane
3
3
  class AndroidGetReleaseVersionAction < Action
4
4
  def self.run(params)
5
5
  require_relative '../../helper/android/android_version_helper'
6
- Fastlane::Helper::Android::VersionHelper.get_release_version()
6
+ Fastlane::Helper::Android::VersionHelper.get_release_version(product_name: params[:app])
7
7
  end
8
8
 
9
9
  #####################################################
@@ -20,6 +20,12 @@ module Fastlane
20
20
 
21
21
  def self.available_options
22
22
  # Define all options your action supports.
23
+ [
24
+ FastlaneCore::ConfigItem.new(key: :app,
25
+ env_name: 'PROJECT_NAME',
26
+ description: 'The name of the app to get the release version for',
27
+ is_string: true), # true: verifies the input is a string, false: every kind of value
28
+ ]
23
29
  end
24
30
 
25
31
  def self.output
@@ -5,10 +5,12 @@ module Fastlane
5
5
  require_relative '../../helper/android/android_version_helper'
6
6
  require_relative '../../helper/android/android_git_helper'
7
7
 
8
- release_ver = Fastlane::Helper::Android::VersionHelper.get_release_version()
9
- alpha_ver = Fastlane::Helper::Android::VersionHelper.get_alpha_version() unless ENV['HAS_ALPHA_VERSION'].nil?
8
+ app = ENV['PROJECT_NAME'].nil? ? params[:app] : ENV['PROJECT_NAME']
9
+
10
+ release_ver = Fastlane::Helper::Android::VersionHelper.get_release_version(app)
11
+ alpha_ver = Fastlane::Helper::Android::VersionHelper.get_alpha_version(app)
10
12
  Fastlane::Helper::GitHelper.create_tag(release_ver[Fastlane::Helper::Android::VersionHelper::VERSION_NAME])
11
- Fastlane::Helper::GitHelper.create_tag(alpha_ver[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]) unless ENV['HAS_ALPHA_VERSION'].nil? || (params[:tag_alpha] == false)
13
+ Fastlane::Helper::GitHelper.create_tag(alpha_ver[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]) unless alpha_ver.nil? || (params[:tag_alpha] == false)
12
14
  end
13
15
 
14
16
  #####################################################
@@ -30,6 +32,10 @@ module Fastlane
30
32
  description: 'True to skip tagging the alpha version',
31
33
  is_string: false,
32
34
  default_value: true),
35
+ FastlaneCore::ConfigItem.new(key: :app,
36
+ env_name: 'PROJECT_NAME',
37
+ description: 'The name of the app to get the release version for',
38
+ is_string: true), # true: verifies the input is a string, false: every kind of value
33
39
  ]
34
40
  end
35
41
 
@@ -12,11 +12,20 @@ module Fastlane
12
12
  # @env PROJECT_NAME The name of the directory containing the project code (especially containing the `build.gradle` file)
13
13
  #
14
14
  def self.commit_version_bump
15
- Fastlane::Helper::GitHelper.commit(
16
- message: 'Bump version number',
17
- files: File.join(ENV['PROJECT_ROOT_FOLDER'], ENV['PROJECT_NAME'], 'build.gradle'),
18
- push: true
19
- )
15
+ require_relative './android_version_helper'
16
+ if Fastlane::Helper::Android::VersionHelper.properties_file_exists
17
+ Fastlane::Helper::GitHelper.commit(
18
+ message: 'Bump version number',
19
+ files: File.join(ENV['PROJECT_ROOT_FOLDER'], 'version.properties'),
20
+ push: true
21
+ )
22
+ else
23
+ Fastlane::Helper::GitHelper.commit(
24
+ message: 'Bump version number',
25
+ files: File.join(ENV['PROJECT_ROOT_FOLDER'], ENV['PROJECT_NAME'], 'build.gradle'),
26
+ push: true
27
+ )
28
+ end
20
29
  end
21
30
 
22
31
  # Calls the `tools/update-translations.sh` script from the project repo, then lint them using the provided gradle task
@@ -26,26 +26,29 @@ module Fastlane
26
26
  # "1.2" # Assuming build.gradle contains versionName "1.2.0"
27
27
  # "1.2.3" # Assuming build.gradle contains versionName "1.2.3"
28
28
  #
29
+ # @param [String] app The name of the app to be used for beta and alpha version update
30
+ #
29
31
  # @return [String] The public-facing version number, extracted from the `versionName` of the `build.gradle` file.
30
32
  # - If this version is a hotfix (more than 2 parts and 3rd part is non-zero), returns the "X.Y.Z" formatted string
31
33
  # - Otherwise (not a hotfix / 3rd part of version is 0), returns "X.Y" formatted version number
32
34
  #
33
- def self.get_public_version
34
- version = get_release_version
35
+ def self.get_public_version(app)
36
+ version = get_release_version(product_name: app)
35
37
  vp = get_version_parts(version[VERSION_NAME])
36
38
  return "#{vp[MAJOR_NUMBER]}.#{vp[MINOR_NUMBER]}" unless is_hotfix?(version)
37
39
 
38
40
  "#{vp[MAJOR_NUMBER]}.#{vp[MINOR_NUMBER]}.#{vp[HOTFIX_NUMBER]}"
39
41
  end
40
42
 
41
- # Extract the version name and code from the `vanilla` flavor of the `$PROJECT_NAME/build.gradle file`
42
- # or for the defaultConfig if `HAS_ALPHA_VERSION` is not defined.
43
+ # Extract the version name and code from the release version of the app from `version.properties file`
43
44
  #
44
- # @env HAS_ALPHA_VERSION If set (with any value), indicates that the project uses `vanilla` flavor.
45
+ # @param [String] app The name of the app to be used for beta and alpha version update
45
46
  #
46
47
  # @return [Hash] A hash with 2 keys "name" and "code" containing the extracted version name and code, respectively
47
48
  #
48
- def self.get_release_version
49
+ def self.get_release_version(product_name:)
50
+ return get_version_from_properties(product_name: product_name) if properties_file_exists
51
+
49
52
  section = ENV['HAS_ALPHA_VERSION'].nil? ? 'defaultConfig' : 'vanilla {'
50
53
  gradle_path = self.gradle_path
51
54
  name = get_version_name_from_gradle_file(gradle_path, section)
@@ -53,12 +56,50 @@ module Fastlane
53
56
  return { VERSION_NAME => name, VERSION_CODE => code }
54
57
  end
55
58
 
56
- # Extract the version name and code from the `defaultConfig` of the `$PROJECT_NAME/build.gradle` file
59
+ def self.properties_file_exists
60
+ properties_file_path = File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', 'version.properties')
61
+
62
+ return File.exist?(properties_file_path)
63
+ end
64
+
65
+ # Extract the version name and code from the `version.properties` file in the project root
66
+ #
67
+ # @param [String] product_name The name of the app to extract the version from e.g. wordpress, simplenote
68
+ # @param [Boolean] is_alpha true if the alpha version should be returned, false otherwise
69
+ #
70
+ # @return [Hash] A hash with 2 keys "name" and "code" containing the extracted version name and code, respectively
71
+ #
72
+ def self.get_version_from_properties(product_name:, is_alpha: false)
73
+ version_name_key = "#{product_name}.#{is_alpha ? 'alpha.' : ''}versionName"
74
+ version_code_key = "#{product_name}.#{is_alpha ? 'alpha.' : ''}versionCode"
75
+
76
+ properties_file_path = File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', 'version.properties')
77
+
78
+ return nil unless File.exist?(properties_file_path)
79
+
80
+ File.open(properties_file_path, 'r') do |f|
81
+ text = f.read
82
+ name = text.match(/#{version_name_key}=(\S*)/m)&.captures&.first
83
+ code = text.match(/#{version_code_key}=(\S*)/m)&.captures&.first
84
+
85
+ f.close
86
+
87
+ return nil if name.nil? || code.nil?
88
+
89
+ return { VERSION_NAME => name, VERSION_CODE => code.to_i }
90
+ end
91
+ end
92
+
93
+ # Extract the version name and code from the `version.properties` file in the project root
94
+ #
95
+ # @param [String] app The name of the app to be used for beta and alpha version update
57
96
  #
58
97
  # @return [Hash] A hash with 2 keys `"name"` and `"code"` containing the extracted version name and code, respectively,
59
98
  # or `nil` if `$HAS_ALPHA_VERSION` is not defined.
60
99
  #
61
- def self.get_alpha_version
100
+ def self.get_alpha_version(app)
101
+ return get_version_from_properties(product_name: app, is_alpha: true) if properties_file_exists
102
+
62
103
  return nil if ENV['HAS_ALPHA_VERSION'].nil?
63
104
 
64
105
  section = 'defaultConfig'
@@ -95,8 +136,8 @@ module Fastlane
95
136
  # - The final version name corresponds to the beta's versionName, without the `-rc` suffix
96
137
  # - The final version code corresponds to the versionCode for the alpha (or for the beta if alpha_version is nil) incremented by one.
97
138
  #
98
- # @param [Hash] beta_version The version hash for the beta (vanilla flavor), containing values for keys "name" and "code"
99
- # @param [Hash] alpha_version The version hash for the alpha (defaultConfig), containing values for keys "name" and "code",
139
+ # @param [Hash] beta_version The version hash for the beta, containing values for keys "name" and "code"
140
+ # @param [Hash] alpha_version The version hash for the alpha, containing values for keys "name" and "code",
100
141
  # or `nil` if no alpha version to consider.
101
142
  #
102
143
  # @return [Hash] A version hash with keys "name" and "code", containing the version name and code to use for final release.
@@ -254,11 +295,12 @@ module Fastlane
254
295
 
255
296
  # Prints the current and next release version names to stdout, then returns the next release version
256
297
  #
298
+ # @param [String] app The name of the app to be used for beta and alpha version update
257
299
  # @return [String] The next release version name to use after bumping the currently used release version.
258
300
  #
259
- def self.bump_version_release
301
+ def self.bump_version_release(app)
260
302
  # Bump release
261
- current_version = get_release_version()
303
+ current_version = get_release_version(product_name: app)
262
304
  UI.message("Current version: #{current_version[VERSION_NAME]}")
263
305
  new_version = calc_next_release_base_version(current_version)
264
306
  UI.message("New version: #{new_version[VERSION_NAME]}")
@@ -267,13 +309,25 @@ module Fastlane
267
309
  return verified_version
268
310
  end
269
311
 
270
- # Update the `build.gradle` file with new `versionName` and `versionCode` values, both or the `defaultConfig` and `vanilla` flavors
271
- #
272
- # @param [Hash] new_version_beta The version hash for the beta (vanilla flavor), containing values for keys "name" and "code"
273
- # @param [Hash] new_version_alpha The version hash for the alpha (defaultConfig), containing values for keys "name" and "code"
274
- # @env HAS_ALPHA_VERSION If set (with any value), indicates that the project uses `vanilla` flavor.
275
- #
276
- def self.update_versions(new_version_beta, new_version_alpha)
312
+ # Update the `version.properties` file with new `versionName` and `versionCode` values
313
+ #
314
+ # @param [String] app The name of the app to be used for beta and alpha version update
315
+ # @param [Hash] new_version_beta The version hash for the beta, containing values for keys "name" and "code"
316
+ # @param [Hash] new_version_alpha The version hash for the alpha , containing values for keys "name" and "code"
317
+ #
318
+ def self.update_versions(app, new_version_beta, new_version_alpha)
319
+ if properties_file_exists
320
+ new_version_name_beta_key = "#{app}.versionName"
321
+ new_version_code_beta_key = "#{app}.versionCode"
322
+ new_version_name_alpha_key = "#{app}.alpha.versionName"
323
+ new_version_code_alpha_key = "#{app}.alpha.versionCode"
324
+ Action.sh('./gradlew', 'updateVersionProperties', "-Pkey=#{new_version_name_beta_key}", "-Pvalue=#{new_version_beta[VERSION_NAME]}")
325
+ Action.sh('./gradlew', 'updateVersionProperties', "-Pkey=#{new_version_code_beta_key}", "-Pvalue=#{new_version_beta[VERSION_CODE]}")
326
+ Action.sh('./gradlew', 'updateVersionProperties', "-Pkey=#{new_version_name_alpha_key}", "-Pvalue=#{new_version_alpha[VERSION_NAME]}") unless new_version_alpha.nil?
327
+ Action.sh('./gradlew', 'updateVersionProperties', "-Pkey=#{new_version_code_alpha_key}", "-Pvalue=#{new_version_alpha[VERSION_CODE]}") unless new_version_alpha.nil?
328
+ return
329
+ end
330
+
277
331
  self.update_version(new_version_beta, ENV['HAS_ALPHA_VERSION'].nil? ? 'defaultConfig' : 'vanilla {')
278
332
  self.update_version(new_version_alpha, 'defaultConfig') unless new_version_alpha.nil?
279
333
  end
@@ -337,6 +391,37 @@ module Fastlane
337
391
  return parts
338
392
  end
339
393
 
394
+ # Ensure that a version string is correctly formatted (that is, each of its parts is a number) and returns the 2-parts version number
395
+ #
396
+ # @param [String] version The version string to verify
397
+ #
398
+ # @return [String] The "major.minor" version string, only with the first 2 components
399
+ # @raise [UserError] If any of the parts of the version string is not a number
400
+ #
401
+ def self.verify_version(version)
402
+ v_parts = get_version_parts(version)
403
+
404
+ v_parts.each do |part|
405
+ UI.user_error!('Version value can only contains numbers.') unless is_int?(part)
406
+ end
407
+
408
+ "#{v_parts[MAJOR_NUMBER]}.#{v_parts[MINOR_NUMBER]}"
409
+ end
410
+
411
+ # Check if a string is an integer.
412
+ #
413
+ # @param [String] string The string to test
414
+ #
415
+ # @return [Bool] true if the string is representing an integer value, false if not
416
+ #
417
+ def self.is_int? string
418
+ true if Integer(string) rescue false
419
+ end
420
+
421
+ #########
422
+ # Functions to support versioning through build.gradle - can be removed once all projects adopt version.properties
423
+ ########
424
+
340
425
  # Extract the versionName from a build.gradle file
341
426
  #
342
427
  # @param [String] file_path The path to the `.gradle` file
@@ -387,33 +472,6 @@ module Fastlane
387
472
  return nil
388
473
  end
389
474
 
390
- # Ensure that a version string is correctly formatted (that is, each of its parts is a number) and returns the 2-parts version number
391
- #
392
- # @param [String] version The version string to verify
393
- #
394
- # @return [String] The "major.minor" version string, only with the first 2 components
395
- # @raise [UserError] If any of the parts of the version string is not a number
396
- #
397
- def self.verify_version(version)
398
- v_parts = get_version_parts(version)
399
-
400
- v_parts.each do |part|
401
- UI.user_error!('Version value can only contains numbers.') unless is_int?(part)
402
- end
403
-
404
- "#{v_parts[MAJOR_NUMBER]}.#{v_parts[MINOR_NUMBER]}"
405
- end
406
-
407
- # Check if a string is an integer.
408
- #
409
- # @param [String] string The string to test
410
- #
411
- # @return [Bool] true if the string is representing an integer value, false if not
412
- #
413
- def self.is_int? string
414
- true if Integer(string) rescue false
415
- end
416
-
417
475
  # The path to the build.gradle file for the project.
418
476
  #
419
477
  # @env PROJECT_ROOT_FOLDER The path to the root of the project (the folder containing the `.git` directory).
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Wpmreleasetoolkit
3
- VERSION = '1.2.0'
3
+ VERSION = '1.3.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-wpmreleasetoolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorenzo Mattei
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-10 00:00:00.000000000 Z
11
+ date: 2021-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diffy