fastlane-plugin-wpmreleasetoolkit 9.1.0 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_betabuild_prechecks.rb +41 -5
  3. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_build_prechecks.rb +37 -6
  4. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_beta.rb +40 -5
  5. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_final_release.rb +40 -5
  6. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_hotfix.rb +35 -3
  7. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_release.rb +42 -5
  8. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_codefreeze_prechecks.rb +33 -3
  9. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_completecodefreeze_prechecks.rb +25 -1
  10. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_current_branch_is_hotfix.rb +28 -2
  11. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_download_file_by_version.rb +13 -1
  12. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_download_translations_action.rb +3 -1
  13. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_finalize_prechecks.rb +25 -1
  14. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_alpha_version.rb +28 -2
  15. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_app_version.rb +28 -2
  16. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_release_version.rb +28 -2
  17. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_tag_build.rb +29 -2
  18. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_update_release_notes.rb +2 -0
  19. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_release_notes.rb +2 -0
  20. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_git_helper.rb +8 -9
  21. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_version_helper.rb +31 -47
  22. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/deprecated.rb +46 -0
  23. data/lib/fastlane/plugin/wpmreleasetoolkit/version.rb +1 -1
  24. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e26f9a48b802c79f4ac19eafc0f3da18b717202ab42d01ca2b2735df4b4abd5d
4
- data.tar.gz: ee567a664e7831629f4a0886fc574eec192ef214c47468211a99aa679e98685b
3
+ metadata.gz: '08941e54d2253b1ac4dbcb350d0e5e1a31da6dc52897e2c392608f1554ad8308'
4
+ data.tar.gz: 7d98b95785ac0c1d7fca4b73474d234797753f6d04c84e848b9cc7eba332a5e5
5
5
  SHA512:
6
- metadata.gz: 993ef98974907a12d687e1558f9134038bf9e746a24c98e35dec4d230c87971e3342cd485d398b80076a20d03626ae4bf3b4c8b09f8f4fed316fc4ec7dcd0f8c
7
- data.tar.gz: 3c6bebdb6b77966315088ea774e9a9275035b35abf87fcbf53b3ddfdadcdbd604c59a3ea2fe0d63082a6e572ead59e96cef851c0ec3c8d6187ed6f36326fb6e4
6
+ metadata.gz: 2deb2008e93e31b32f43cf418f49d9c92365d726c565fea9843e68fb8aeef809ad4311abf4419ea00bc96e60f269e30a8bd412a68ec0f8064680c0a88149da80
7
+ data.tar.gz: 2cbef8e0edc3f6e69d6bc02f812ebdc1f3cecd2d740d93a8f4ad930440a84d7b9bd1b449414b18e761a7e9a700f5c42b0083fb55f2ec6f902025c87851cb77fc
@@ -8,18 +8,32 @@ module Fastlane
8
8
  require_relative '../../helper/android/android_version_helper'
9
9
  require_relative '../../helper/android/android_git_helper'
10
10
 
11
+ project_root_folder = params[:project_root_folder]
12
+ project_name = params[:project_name]
13
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
14
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
15
+
11
16
  # Checkout default branch and update
12
17
  default_branch = params[:default_branch]
13
18
  Fastlane::Helper::GitHelper.checkout_and_pull(default_branch)
14
19
 
15
20
  # Check versions
16
- release_version = Fastlane::Helper::Android::VersionHelper.get_release_version
21
+ release_version = Fastlane::Helper::Android::VersionHelper.get_release_version(
22
+ build_gradle_path: build_gradle_path,
23
+ version_properties_path: version_properties_path
24
+ )
17
25
  message = "The following current version has been detected: #{release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}\n"
18
- alpha_release_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version
26
+ alpha_release_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version(
27
+ build_gradle_path: build_gradle_path,
28
+ version_properties_path: version_properties_path
29
+ )
19
30
  message << "The following Alpha version has been detected: #{alpha_release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}\n" unless alpha_release_version.nil?
20
31
 
21
32
  # Check branch
22
- app_version = Fastlane::Helper::Android::VersionHelper.get_public_version
33
+ app_version = Fastlane::Helper::Android::VersionHelper.get_public_version(
34
+ build_gradle_path: build_gradle_path,
35
+ version_properties_path: version_properties_path
36
+ )
23
37
  UI.user_error!("#{message}Release branch for version #{app_version} doesn't exist. Abort.") unless !params[:base_version].nil? || Fastlane::Helper::GitHelper.checkout_and_pull(release: app_version)
24
38
 
25
39
  # Check user overwrite
@@ -50,9 +64,15 @@ module Fastlane
50
64
 
51
65
  def self.get_user_build_version(version:, message:)
52
66
  UI.user_error!("Release branch for version #{version} doesn't exist. Abort.") unless Fastlane::Helper::GitHelper.checkout_and_pull(release: version)
53
- release_version = Fastlane::Helper::Android::VersionHelper.get_release_version
67
+ release_version = Fastlane::Helper::Android::VersionHelper.get_release_version(
68
+ build_gradle_path: build_gradle_path,
69
+ version_properties_path: version_properties_path
70
+ )
54
71
  message << "Looking at branch release/#{version} as requested by user. Detected version: #{release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}.\n"
55
- alpha_release_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version
72
+ alpha_release_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version(
73
+ build_gradle_path: build_gradle_path,
74
+ version_properties_path: version_properties_path
75
+ )
56
76
  message << "and Alpha Version: #{alpha_release_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]}\n" unless alpha_release_version.nil?
57
77
  [release_version, alpha_release_version]
58
78
  end
@@ -86,6 +106,22 @@ module Fastlane
86
106
  description: 'Default branch of the repository',
87
107
  type: String,
88
108
  default_value: Fastlane::Helper::GitHelper::DEFAULT_GIT_BRANCH),
109
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
110
+ description: 'Path to the build.gradle file',
111
+ type: String,
112
+ optional: true,
113
+ conflicting_options: %i[project_name
114
+ project_root_folder
115
+ version_properties_path]),
116
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
117
+ description: 'Path to the version.properties file',
118
+ type: String,
119
+ optional: true,
120
+ conflicting_options: %i[build_gradle_path
121
+ project_name
122
+ project_root_folder]),
123
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
124
+ Fastlane::Helper::Deprecated.project_name_config_item,
89
125
  ]
90
126
  end
91
127
 
@@ -9,9 +9,24 @@ module Fastlane
9
9
 
10
10
  Fastlane::Helper::GitHelper.ensure_on_branch!('release') unless other_action.is_ci
11
11
 
12
+ project_root_folder = params[:project_root_folder]
13
+ project_name = params[:project_name]
14
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
15
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
16
+
12
17
  message = ''
13
- beta_version = Fastlane::Helper::Android::VersionHelper.get_release_version unless !params[:beta] && !params[:final]
14
- alpha_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version if params[:alpha]
18
+ unless !params[:beta] && !params[:final]
19
+ beta_version = Fastlane::Helper::Android::VersionHelper.get_release_version(
20
+ build_gradle_path: build_gradle_path,
21
+ version_properties_path: version_properties_path
22
+ )
23
+ end
24
+ if params[:alpha]
25
+ alpha_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version(
26
+ build_gradle_path: build_gradle_path,
27
+ version_properties_path: version_properties_path
28
+ )
29
+ end
15
30
 
16
31
  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)
17
32
 
@@ -19,10 +34,10 @@ module Fastlane
19
34
  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]
20
35
  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]
21
36
 
22
- if params[:skip_confirm]
23
- UI.message(message)
24
- else
25
- UI.user_error!('Aborted by user request') unless UI.confirm("#{message}Do you want to continue?")
37
+ UI.important(message)
38
+
39
+ if !options[:skip_confirm] && !UI.confirm('Do you want to continue?')
40
+ UI.user_error!('Aborted by user request')
26
41
  end
27
42
 
28
43
  # Check local repo status
@@ -63,6 +78,22 @@ module Fastlane
63
78
  description: 'True if this is for a final build',
64
79
  type: Boolean,
65
80
  default_value: false),
81
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
82
+ description: 'Path to the build.gradle file',
83
+ type: String,
84
+ optional: true,
85
+ conflicting_options: %i[project_name
86
+ project_root_folder
87
+ version_properties_path]),
88
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
89
+ description: 'Path to the version.properties file',
90
+ type: String,
91
+ optional: true,
92
+ conflicting_options: %i[build_gradle_path
93
+ project_name
94
+ project_root_folder]),
95
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
96
+ Fastlane::Helper::Deprecated.project_name_config_item,
66
97
  ]
67
98
  end
68
99
 
@@ -9,8 +9,19 @@ module Fastlane
9
9
 
10
10
  Fastlane::Helper::GitHelper.ensure_on_branch!('release')
11
11
 
12
- current_version = Fastlane::Helper::Android::VersionHelper.get_release_version
13
- current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version
12
+ project_root_folder = params[:project_root_folder]
13
+ project_name = params[:project_name]
14
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
15
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
16
+
17
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(
18
+ build_gradle_path: build_gradle_path,
19
+ version_properties_path: version_properties_path
20
+ )
21
+ current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version(
22
+ build_gradle_path: build_gradle_path,
23
+ version_properties_path: version_properties_path
24
+ )
14
25
  new_version_beta = Fastlane::Helper::Android::VersionHelper.calc_next_beta_version(current_version, current_version_alpha)
15
26
  new_version_alpha = current_version_alpha.nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(new_version_beta, current_version_alpha)
16
27
 
@@ -22,10 +33,17 @@ module Fastlane
22
33
  UI.message("New alpha version: #{new_version_alpha[vname]}(#{new_version_alpha[vcode]})") unless current_version_alpha.nil?
23
34
 
24
35
  UI.message 'Updating app version...'
25
- Fastlane::Helper::Android::VersionHelper.update_versions(new_version_beta, new_version_alpha)
36
+ Fastlane::Helper::Android::VersionHelper.update_versions(
37
+ new_version_beta,
38
+ new_version_alpha,
39
+ version_properties_path: version_properties_path
40
+ )
26
41
  UI.message 'Done!'
27
42
 
28
- Fastlane::Helper::Android::GitHelper.commit_version_bump
43
+ Fastlane::Helper::Android::GitHelper.commit_version_bump(
44
+ build_gradle_path: build_gradle_path,
45
+ version_properties_path: version_properties_path
46
+ )
29
47
  end
30
48
 
31
49
  #####################################################
@@ -41,7 +59,24 @@ module Fastlane
41
59
  end
42
60
 
43
61
  def self.available_options
44
- # Define all options your action supports.
62
+ [
63
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
64
+ description: 'Path to the build.gradle file',
65
+ type: String,
66
+ optional: true,
67
+ conflicting_options: %i[project_name
68
+ project_root_folder
69
+ version_properties_path]),
70
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
71
+ description: 'Path to the version.properties file',
72
+ type: String,
73
+ optional: true,
74
+ conflicting_options: %i[build_gradle_path
75
+ project_name
76
+ project_root_folder]),
77
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
78
+ Fastlane::Helper::Deprecated.project_name_config_item,
79
+ ]
45
80
  end
46
81
 
47
82
  def self.output
@@ -9,8 +9,19 @@ module Fastlane
9
9
 
10
10
  Fastlane::Helper::GitHelper.ensure_on_branch!('release')
11
11
 
12
- current_version = Fastlane::Helper::Android::VersionHelper.get_release_version
13
- current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version
12
+ project_root_folder = params[:project_root_folder]
13
+ project_name = params[:project_name]
14
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
15
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
16
+
17
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(
18
+ build_gradle_path: build_gradle_path,
19
+ version_properties_path: version_properties_path
20
+ )
21
+ current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version(
22
+ build_gradle_path: build_gradle_path,
23
+ version_properties_path: version_properties_path
24
+ )
14
25
  final_version = Fastlane::Helper::Android::VersionHelper.calc_final_release_version(current_version, current_version_alpha)
15
26
 
16
27
  vname = Fastlane::Helper::Android::VersionHelper::VERSION_NAME
@@ -20,10 +31,17 @@ module Fastlane
20
31
  UI.message("New release version: #{final_version[vname]}(#{final_version[vcode]})")
21
32
 
22
33
  UI.message 'Updating app version...'
23
- Fastlane::Helper::Android::VersionHelper.update_versions(final_version, current_version_alpha)
34
+ Fastlane::Helper::Android::VersionHelper.update_versions(
35
+ final_version,
36
+ current_version_alpha,
37
+ version_properties_path: version_properties_path
38
+ )
24
39
  UI.message 'Done!'
25
40
 
26
- Fastlane::Helper::Android::GitHelper.commit_version_bump
41
+ Fastlane::Helper::Android::GitHelper.commit_version_bump(
42
+ build_gradle_path: build_gradle_path,
43
+ version_properties_path: version_properties_path
44
+ )
27
45
  end
28
46
 
29
47
  #####################################################
@@ -39,7 +57,24 @@ module Fastlane
39
57
  end
40
58
 
41
59
  def self.available_options
42
- # Define all options your action supports.
60
+ [
61
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
62
+ description: 'Path to the build.gradle file',
63
+ type: String,
64
+ optional: true,
65
+ conflicting_options: %i[project_name
66
+ project_root_folder
67
+ version_properties_path]),
68
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
69
+ description: 'Path to the version.properties file',
70
+ type: String,
71
+ optional: true,
72
+ conflicting_options: %i[build_gradle_path
73
+ project_name
74
+ project_root_folder]),
75
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
76
+ Fastlane::Helper::Deprecated.project_name_config_item,
77
+ ]
43
78
  end
44
79
 
45
80
  def self.authors
@@ -5,9 +5,18 @@ module Fastlane
5
5
  UI.message 'Bumping app release version for hotfix...'
6
6
 
7
7
  require_relative '../../helper/android/android_git_helper'
8
+
9
+ project_root_folder = params[:project_root_folder]
10
+ project_name = params[:project_name]
11
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
12
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
13
+
8
14
  Fastlane::Helper::GitHelper.create_branch("release/#{params[:version_name]}", from: params[:previous_version_name])
9
15
 
10
- current_version = Fastlane::Helper::Android::VersionHelper.get_release_version
16
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(
17
+ build_gradle_path: build_gradle_path,
18
+ version_properties_path: version_properties_path
19
+ )
11
20
  new_version = Fastlane::Helper::Android::VersionHelper.calc_next_hotfix_version(params[:version_name], params[:version_code]) # NOTE: this just puts the name/code values in a tuple, unchanged (no actual calc/bumping)
12
21
  new_release_branch = "release/#{params[:version_name]}"
13
22
 
@@ -18,10 +27,17 @@ module Fastlane
18
27
  UI.message("Release branch: #{new_release_branch}")
19
28
 
20
29
  UI.message 'Updating app version...'
21
- Fastlane::Helper::Android::VersionHelper.update_versions(new_version, nil)
30
+ Fastlane::Helper::Android::VersionHelper.update_versions(
31
+ new_version,
32
+ nil,
33
+ version_properties_path: version_properties_path
34
+ )
22
35
  UI.message 'Done!'
23
36
 
24
- Fastlane::Helper::Android::GitHelper.commit_version_bump
37
+ Fastlane::Helper::Android::GitHelper.commit_version_bump(
38
+ build_gradle_path: build_gradle_path,
39
+ version_properties_path: version_properties_path
40
+ )
25
41
 
26
42
  UI.message 'Done.'
27
43
  end
@@ -52,6 +68,22 @@ module Fastlane
52
68
  env_name: 'FL_ANDROID_BUMP_VERSION_HOTFIX_PREVIOUS_VERSION',
53
69
  description: 'The version to branch from',
54
70
  type: String),
71
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
72
+ description: 'Path to the build.gradle file',
73
+ type: String,
74
+ optional: true,
75
+ conflicting_options: %i[project_name
76
+ project_root_folder
77
+ version_properties_path]),
78
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
79
+ description: 'Path to the version.properties file',
80
+ type: String,
81
+ optional: true,
82
+ conflicting_options: %i[build_gradle_path
83
+ project_name
84
+ project_root_folder]),
85
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
86
+ Fastlane::Helper::Deprecated.project_name_config_item,
55
87
  ]
56
88
  end
57
89
 
@@ -8,14 +8,28 @@ module Fastlane
8
8
  require_relative '../../helper/android/android_version_helper'
9
9
  require_relative '../../helper/android/android_git_helper'
10
10
 
11
+ project_root_folder = params[:project_root_folder]
12
+ project_name = params[:project_name]
13
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
14
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
15
+
11
16
  default_branch = params[:default_branch]
12
17
  other_action.ensure_git_branch(branch: default_branch)
13
18
 
14
19
  # Create new configuration
15
- new_short_version = Fastlane::Helper::Android::VersionHelper.bump_version_release
20
+ new_short_version = Fastlane::Helper::Android::VersionHelper.bump_version_release(
21
+ build_gradle_path: build_gradle_path,
22
+ version_properties_path: version_properties_path
23
+ )
16
24
 
17
- current_version = Fastlane::Helper::Android::VersionHelper.get_release_version
18
- current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version
25
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(
26
+ build_gradle_path: build_gradle_path,
27
+ version_properties_path: version_properties_path
28
+ )
29
+ current_version_alpha = Fastlane::Helper::Android::VersionHelper.get_alpha_version(
30
+ build_gradle_path: build_gradle_path,
31
+ version_properties_path: version_properties_path
32
+ )
19
33
  new_version_beta = Fastlane::Helper::Android::VersionHelper.calc_next_release_version(current_version, current_version_alpha)
20
34
  new_version_alpha = current_version_alpha.nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(new_version_beta, current_version_alpha)
21
35
  new_release_branch = "release/#{new_short_version}"
@@ -35,8 +49,15 @@ module Fastlane
35
49
  UI.message 'Done!'
36
50
 
37
51
  UI.message 'Updating app version...'
38
- Fastlane::Helper::Android::VersionHelper.update_versions(new_version_beta, new_version_alpha)
39
- Fastlane::Helper::Android::GitHelper.commit_version_bump
52
+ Fastlane::Helper::Android::VersionHelper.update_versions(
53
+ new_version_beta,
54
+ new_version_alpha,
55
+ version_properties_path: version_properties_path
56
+ )
57
+ Fastlane::Helper::Android::GitHelper.commit_version_bump(
58
+ build_gradle_path: build_gradle_path,
59
+ version_properties_path: version_properties_path
60
+ )
40
61
  UI.message 'Done.'
41
62
  end
42
63
 
@@ -59,6 +80,22 @@ module Fastlane
59
80
  description: 'Default branch of the repository',
60
81
  type: String,
61
82
  default_value: Fastlane::Helper::GitHelper::DEFAULT_GIT_BRANCH),
83
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
84
+ description: 'Path to the build.gradle file',
85
+ type: String,
86
+ optional: true,
87
+ conflicting_options: %i[project_name
88
+ project_root_folder
89
+ version_properties_path]),
90
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
91
+ description: 'Path to the version.properties file',
92
+ type: String,
93
+ optional: true,
94
+ conflicting_options: %i[build_gradle_path
95
+ project_name
96
+ project_root_folder]),
97
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
98
+ Fastlane::Helper::Deprecated.project_name_config_item,
62
99
  ]
63
100
  end
64
101
 
@@ -11,13 +11,24 @@ module Fastlane
11
11
  require_relative '../../helper/android/android_version_helper'
12
12
  require_relative '../../helper/android/android_git_helper'
13
13
 
14
+ project_root_folder = params[:project_root_folder]
15
+ project_name = params[:project_name]
16
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
17
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
18
+
14
19
  # Checkout default branch and update
15
20
  default_branch = params[:default_branch]
16
21
  Fastlane::Helper::GitHelper.checkout_and_pull(default_branch)
17
22
 
18
23
  # Create versions
19
- current_version = Fastlane::Helper::Android::VersionHelper.get_release_version
20
- current_alpha_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version
24
+ current_version = Fastlane::Helper::Android::VersionHelper.get_release_version(
25
+ build_gradle_path: build_gradle_path,
26
+ version_properties_path: version_properties_path
27
+ )
28
+ current_alpha_version = Fastlane::Helper::Android::VersionHelper.get_alpha_version(
29
+ build_gradle_path: build_gradle_path,
30
+ version_properties_path: version_properties_path
31
+ )
21
32
  next_version = Fastlane::Helper::Android::VersionHelper.calc_next_release_version(current_version, current_alpha_version)
22
33
  next_alpha_version = current_alpha_version.nil? ? nil : Fastlane::Helper::Android::VersionHelper.calc_next_alpha_version(next_version, current_alpha_version)
23
34
 
@@ -36,7 +47,10 @@ module Fastlane
36
47
  other_action.ensure_git_status_clean
37
48
 
38
49
  # Return the current version
39
- Fastlane::Helper::Android::VersionHelper.get_public_version
50
+ Fastlane::Helper::Android::VersionHelper.get_public_version(
51
+ build_gradle_path: build_gradle_path,
52
+ version_properties_path: version_properties_path
53
+ )
40
54
  end
41
55
 
42
56
  #####################################################
@@ -64,6 +78,22 @@ module Fastlane
64
78
  description: 'Default branch of the repository',
65
79
  type: String,
66
80
  default_value: Fastlane::Helper::GitHelper::DEFAULT_GIT_BRANCH),
81
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
82
+ description: 'Path to the build.gradle file',
83
+ type: String,
84
+ optional: true,
85
+ conflicting_options: %i[project_name
86
+ project_root_folder
87
+ version_properties_path]),
88
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
89
+ description: 'Path to the version.properties file',
90
+ type: String,
91
+ optional: true,
92
+ conflicting_options: %i[build_gradle_path
93
+ project_name
94
+ project_root_folder]),
95
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
96
+ Fastlane::Helper::Deprecated.project_name_config_item,
67
97
  ]
68
98
  end
69
99
 
@@ -11,7 +11,15 @@ module Fastlane
11
11
  current_branch = Fastlane::Helper::GitHelper.current_git_branch
12
12
  UI.user_error!("Current branch - '#{current_branch}' - is not a release branch. Abort.") unless current_branch.start_with?('release/')
13
13
 
14
- version = Fastlane::Helper::Android::VersionHelper.get_public_version
14
+ project_root_folder = params[:project_root_folder]
15
+ project_name = params[:project_name]
16
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
17
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
18
+
19
+ version = Fastlane::Helper::Android::VersionHelper.get_public_version(
20
+ build_gradle_path: build_gradle_path,
21
+ version_properties_path: version_properties_path
22
+ )
15
23
  message = "Completing code freeze for: #{version}\n"
16
24
  if params[:skip_confirm]
17
25
  UI.message(message)
@@ -44,6 +52,22 @@ module Fastlane
44
52
  description: 'Skips confirmation',
45
53
  type: Boolean,
46
54
  default_value: false), # the default value if the user didn't provide one
55
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
56
+ description: 'Path to the build.gradle file',
57
+ type: String,
58
+ optional: true,
59
+ conflicting_options: %i[project_name
60
+ project_root_folder
61
+ version_properties_path]),
62
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
63
+ description: 'Path to the version.properties file',
64
+ type: String,
65
+ optional: true,
66
+ conflicting_options: %i[build_gradle_path
67
+ project_name
68
+ project_root_folder]),
69
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
70
+ Fastlane::Helper::Deprecated.project_name_config_item,
47
71
  ]
48
72
  end
49
73
 
@@ -7,7 +7,16 @@ module Fastlane
7
7
  class AndroidCurrentBranchIsHotfixAction < Action
8
8
  def self.run(params)
9
9
  require_relative '../../helper/android/android_version_helper'
10
- version = Fastlane::Helper::Android::VersionHelper.get_release_version
10
+
11
+ project_root_folder = params[:project_root_folder]
12
+ project_name = params[:project_name]
13
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
14
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
15
+
16
+ version = Fastlane::Helper::Android::VersionHelper.get_release_version(
17
+ build_gradle_path: build_gradle_path,
18
+ version_properties_path: version_properties_path
19
+ )
11
20
  Fastlane::Helper::Android::VersionHelper.is_hotfix?(version)
12
21
  end
13
22
 
@@ -24,7 +33,24 @@ module Fastlane
24
33
  end
25
34
 
26
35
  def self.available_options
27
- # Define all options your action supports.
36
+ [
37
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
38
+ description: 'Path to the build.gradle file',
39
+ type: String,
40
+ optional: true,
41
+ conflicting_options: %i[project_name
42
+ project_root_folder
43
+ version_properties_path]),
44
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
45
+ description: 'Path to the version.properties file',
46
+ type: String,
47
+ optional: true,
48
+ conflicting_options: %i[build_gradle_path
49
+ project_name
50
+ project_root_folder]),
51
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
52
+ Fastlane::Helper::Deprecated.project_name_config_item,
53
+ ]
28
54
  end
29
55
 
30
56
  def self.output
@@ -5,7 +5,13 @@ module Fastlane
5
5
  require_relative '../../helper/android/android_localize_helper'
6
6
  require_relative '../../helper/github_helper'
7
7
 
8
- version = Fastlane::Helper::Android::VersionHelper.get_library_version_from_gradle_config(import_key: params[:import_key])
8
+ project_root_folder = params[:project_root_folder]
9
+ build_gradle_path = params[:build_gradle_path] || File.join(project_root_folder || '.', 'build.gradle')
10
+
11
+ version = Fastlane::Helper::Android::VersionHelper.get_library_version_from_gradle_config(
12
+ build_gradle_path: build_gradle_path,
13
+ import_key: params[:import_key]
14
+ )
9
15
  UI.user_error!("Can't find any reference for key #{params[:import_key]}") if version.nil?
10
16
  UI.message "Downloading #{params[:file_path]} from #{params[:repository]} at version #{version} to #{params[:download_folder]}"
11
17
 
@@ -58,7 +64,13 @@ module Fastlane
58
64
  description: 'The prefix which is used in the GitHub release title',
59
65
  type: String,
60
66
  optional: true),
67
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
68
+ description: 'Path to the build.gradle file',
69
+ type: String,
70
+ optional: true,
71
+ conflicting_options: [:project_root_folder]),
61
72
  Fastlane::Helper::GithubHelper.github_token_config_item,
73
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
62
74
  ]
63
75
  end
64
76
 
@@ -7,7 +7,8 @@ module Fastlane
7
7
  require_relative '../../helper/android/android_localize_helper'
8
8
  require_relative '../../helper/git_helper'
9
9
 
10
- res_dir = File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', params[:res_dir])
10
+ project_root_folder = params[:project_root_folder]
11
+ res_dir = File.join(project_root_folder || '.', params[:res_dir])
11
12
 
12
13
  Fastlane::Helper::Android::LocalizeHelper.create_available_languages_file(
13
14
  res_dir: res_dir,
@@ -94,6 +95,7 @@ module Fastlane
94
95
  type: Boolean,
95
96
  default_value: false
96
97
  ),
98
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
97
99
  ]
98
100
  end
99
101
 
@@ -15,7 +15,15 @@ module Fastlane
15
15
  current_branch = Fastlane::Helper::GitHelper.current_git_branch
16
16
  UI.user_error!("Current branch - '#{current_branch}' - is not a release branch. Abort.") unless current_branch.start_with?('release/')
17
17
 
18
- version = Fastlane::Helper::Android::VersionHelper.get_public_version
18
+ project_root_folder = params[:project_root_folder]
19
+ project_name = params[:project_name]
20
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
21
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
22
+
23
+ version = Fastlane::Helper::Android::VersionHelper.get_public_version(
24
+ build_gradle_path: build_gradle_path,
25
+ version_properties_path: version_properties_path
26
+ )
19
27
  message = "Finalizing release: #{version}\n"
20
28
  if params[:skip_confirm]
21
29
  UI.message(message)
@@ -51,6 +59,22 @@ module Fastlane
51
59
  description: 'Skips confirmation',
52
60
  type: Boolean,
53
61
  default_value: false), # the default value if the user didn't provide one
62
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
63
+ description: 'Path to the build.gradle file',
64
+ type: String,
65
+ optional: true,
66
+ conflicting_options: %i[project_name
67
+ project_root_folder
68
+ version_properties_path]),
69
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
70
+ description: 'Path to the version.properties file',
71
+ type: String,
72
+ optional: true,
73
+ conflicting_options: %i[build_gradle_path
74
+ project_name
75
+ project_root_folder]),
76
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
77
+ Fastlane::Helper::Deprecated.project_name_config_item,
54
78
  ]
55
79
  end
56
80
 
@@ -3,7 +3,16 @@ 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
+
7
+ project_root_folder = params[:project_root_folder]
8
+ project_name = params[:project_name]
9
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
10
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
11
+
12
+ Fastlane::Helper::Android::VersionHelper.get_alpha_version(
13
+ build_gradle_path: build_gradle_path,
14
+ version_properties_path: version_properties_path
15
+ )
7
16
  end
8
17
 
9
18
  #####################################################
@@ -19,7 +28,24 @@ module Fastlane
19
28
  end
20
29
 
21
30
  def self.available_options
22
- # Define all options your action supports.
31
+ [
32
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
33
+ description: 'Path to the build.gradle file',
34
+ type: String,
35
+ optional: true,
36
+ conflicting_options: %i[project_name
37
+ project_root_folder
38
+ version_properties_path]),
39
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
40
+ description: 'Path to the version.properties file',
41
+ type: String,
42
+ optional: true,
43
+ conflicting_options: %i[build_gradle_path
44
+ project_name
45
+ project_root_folder]),
46
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
47
+ Fastlane::Helper::Deprecated.project_name_config_item,
48
+ ]
23
49
  end
24
50
 
25
51
  def self.output
@@ -3,7 +3,16 @@ 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
+
7
+ project_root_folder = params[:project_root_folder]
8
+ project_name = params[:project_name]
9
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
10
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
11
+
12
+ Fastlane::Helper::Android::VersionHelper.get_public_version(
13
+ build_gradle_path: build_gradle_path,
14
+ version_properties_path: version_properties_path
15
+ )
7
16
  end
8
17
 
9
18
  #####################################################
@@ -19,7 +28,24 @@ module Fastlane
19
28
  end
20
29
 
21
30
  def self.available_options
22
- # Define all options your action supports.
31
+ [
32
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
33
+ description: 'Path to the build.gradle file',
34
+ type: String,
35
+ optional: true,
36
+ conflicting_options: %i[project_name
37
+ project_root_folder
38
+ version_properties_path]),
39
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
40
+ description: 'Path to the version.properties file',
41
+ type: String,
42
+ optional: true,
43
+ conflicting_options: %i[build_gradle_path
44
+ project_name
45
+ project_root_folder]),
46
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
47
+ Fastlane::Helper::Deprecated.project_name_config_item,
48
+ ]
23
49
  end
24
50
 
25
51
  def self.output
@@ -3,7 +3,16 @@ 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
+
7
+ project_root_folder = params[:project_root_folder]
8
+ project_name = params[:project_name]
9
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
10
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
11
+
12
+ Fastlane::Helper::Android::VersionHelper.get_release_version(
13
+ build_gradle_path: build_gradle_path,
14
+ version_properties_path: version_properties_path
15
+ )
7
16
  end
8
17
 
9
18
  #####################################################
@@ -19,7 +28,24 @@ module Fastlane
19
28
  end
20
29
 
21
30
  def self.available_options
22
- # Define all options your action supports.
31
+ [
32
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
33
+ description: 'Path to the build.gradle file',
34
+ type: String,
35
+ optional: true,
36
+ conflicting_options: %i[project_name
37
+ project_root_folder
38
+ version_properties_path]),
39
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
40
+ description: 'Path to the version.properties file',
41
+ type: String,
42
+ optional: true,
43
+ conflicting_options: %i[build_gradle_path
44
+ project_name
45
+ project_root_folder]),
46
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
47
+ Fastlane::Helper::Deprecated.project_name_config_item,
48
+ ]
23
49
  end
24
50
 
25
51
  def self.output
@@ -5,8 +5,19 @@ 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
8
+ project_root_folder = params[:project_root_folder]
9
+ project_name = params[:project_name]
10
+ build_gradle_path = params[:build_gradle_path] || (File.join(project_root_folder || '.', project_name, 'build.gradle') unless project_name.nil?)
11
+ version_properties_path = params[:version_properties_path] || File.join(project_root_folder || '.', 'version.properties')
12
+
13
+ release_ver = Fastlane::Helper::Android::VersionHelper.get_release_version(
14
+ build_gradle_path: build_gradle_path,
15
+ version_properties_path: version_properties_path
16
+ )
17
+ alpha_ver = Fastlane::Helper::Android::VersionHelper.get_alpha_version(
18
+ build_gradle_path: build_gradle_path,
19
+ version_properties_path: version_properties_path
20
+ )
10
21
  Fastlane::Helper::GitHelper.create_tag(release_ver[Fastlane::Helper::Android::VersionHelper::VERSION_NAME])
11
22
  Fastlane::Helper::GitHelper.create_tag(alpha_ver[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]) unless alpha_ver.nil? || (params[:tag_alpha] == false)
12
23
  end
@@ -30,6 +41,22 @@ module Fastlane
30
41
  description: 'True to skip tagging the alpha version',
31
42
  type: Boolean,
32
43
  default_value: true),
44
+ FastlaneCore::ConfigItem.new(key: :build_gradle_path,
45
+ description: 'Path to the build.gradle file',
46
+ type: String,
47
+ optional: true,
48
+ conflicting_options: %i[project_name
49
+ project_root_folder
50
+ version_properties_path]),
51
+ FastlaneCore::ConfigItem.new(key: :version_properties_path,
52
+ description: 'Path to the version.properties file',
53
+ type: String,
54
+ optional: true,
55
+ conflicting_options: %i[build_gradle_path
56
+ project_name
57
+ project_root_folder]),
58
+ Fastlane::Helper::Deprecated.project_root_folder_config_item,
59
+ Fastlane::Helper::Deprecated.project_name_config_item,
33
60
  ]
34
61
  end
35
62
 
@@ -8,6 +8,8 @@ module Fastlane
8
8
  require_relative '../../helper/release_notes_helper'
9
9
  require_relative '../../helper/git_helper'
10
10
 
11
+ UI.deprecated('The `PROJECT_ROOT_FOLDER` environment variable is deprecated and will be removed in a future release. Please pass a path to the `release_notes_file_path` param instead.') unless ENV['PROJECT_ROOT_FOLDER'].nil?
12
+
11
13
  path = params[:release_notes_file_path]
12
14
  next_version = Fastlane::Helper::Android::VersionHelper.calc_next_release_short_version(params[:new_version])
13
15
 
@@ -8,6 +8,8 @@ module Fastlane
8
8
  require_relative '../../helper/release_notes_helper'
9
9
  require_relative '../../helper/git_helper'
10
10
 
11
+ UI.deprecated('The `PROJECT_ROOT_FOLDER` environment variable is deprecated and will be removed in a future release. Please pass a path to the `release_notes_file_path` param instead.') unless ENV['PROJECT_ROOT_FOLDER'].nil?
12
+
11
13
  path = params[:release_notes_file_path]
12
14
  next_version = Fastlane::Helper::Ios::VersionHelper.calc_next_release_version(params[:new_version])
13
15
 
@@ -12,17 +12,16 @@ module Fastlane
12
12
  # @env PROJECT_ROOT_FOLDER The path to the git root of the project
13
13
  # @env PROJECT_NAME The name of the directory containing the project code (especially containing the `build.gradle` file)
14
14
  #
15
- def self.commit_version_bump
16
- require_relative './android_version_helper'
17
- if File.exist?(Fastlane::Helper::Android::VersionHelper.version_properties_file)
18
- Fastlane::Helper::GitHelper.commit(
19
- message: 'Bump version number',
20
- files: File.join(ENV['PROJECT_ROOT_FOLDER'], 'version.properties')
15
+ def self.commit_version_bump(build_gradle_path:, version_properties_path:)
16
+ if File.exist?(version_properties_path)
17
+ git_commit(
18
+ path: version_properties_path,
19
+ message: 'Bump version number'
21
20
  )
22
21
  else
23
- Fastlane::Helper::GitHelper.commit(
24
- message: 'Bump version number',
25
- files: File.join(ENV['PROJECT_ROOT_FOLDER'], ENV['PROJECT_NAME'], 'build.gradle')
22
+ git_commit(
23
+ path: build_gradle_path,
24
+ message: 'Bump version number'
26
25
  )
27
26
  end
28
27
  end
@@ -30,8 +30,11 @@ module Fastlane
30
30
  # - If this version is a hotfix (more than 2 parts and 3rd part is non-zero), returns the "X.Y.Z" formatted string
31
31
  # - Otherwise (not a hotfix / 3rd part of version is 0), returns "X.Y" formatted version number
32
32
  #
33
- def self.get_public_version
34
- version = get_release_version
33
+ def self.get_public_version(build_gradle_path:, version_properties_path:)
34
+ version = get_release_version(
35
+ build_gradle_path: build_gradle_path,
36
+ version_properties_path: version_properties_path
37
+ )
35
38
  vp = get_version_parts(version[VERSION_NAME])
36
39
  return "#{vp[MAJOR_NUMBER]}.#{vp[MINOR_NUMBER]}" unless is_hotfix?(version)
37
40
 
@@ -42,33 +45,28 @@ module Fastlane
42
45
  #
43
46
  # @return [Hash] A hash with 2 keys "name" and "code" containing the extracted version name and code, respectively
44
47
  #
45
- def self.get_release_version
46
- return get_version_from_properties if File.exist?(version_properties_file)
48
+ def self.get_release_version(build_gradle_path:, version_properties_path:)
49
+ return get_version_from_properties(version_properties_path: version_properties_path) if File.exist?(version_properties_path)
47
50
 
48
51
  section = ENV['HAS_ALPHA_VERSION'].nil? ? 'defaultConfig' : 'vanilla {'
49
- gradle_path = self.gradle_path
50
- name = get_version_name_from_gradle_file(gradle_path, section)
51
- code = get_version_build_from_gradle_file(gradle_path, section)
52
+ name = get_version_name_from_gradle_file(build_gradle_path, section)
53
+ code = get_version_build_from_gradle_file(build_gradle_path, section)
52
54
  return { VERSION_NAME => name, VERSION_CODE => code }
53
55
  end
54
56
 
55
- def self.version_properties_file
56
- File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', 'version.properties')
57
- end
58
-
59
57
  # Extract the version name and code from the `version.properties` file in the project root
60
58
  #
61
59
  # @param [Boolean] is_alpha true if the alpha version should be returned, false otherwise
62
60
  #
63
61
  # @return [Hash] A hash with 2 keys "name" and "code" containing the extracted version name and code, respectively
64
62
  #
65
- def self.get_version_from_properties(is_alpha: false)
66
- return nil unless File.exist?(version_properties_file)
63
+ def self.get_version_from_properties(version_properties_path:, is_alpha: false)
64
+ return nil unless File.exist?(version_properties_path)
67
65
 
68
66
  version_name_key = is_alpha ? 'alpha.versionName' : 'versionName'
69
67
  version_code_key = is_alpha ? 'alpha.versionCode' : 'versionCode'
70
68
 
71
- text = File.read(version_properties_file)
69
+ text = File.read(version_properties_path)
72
70
  name = text.match(/#{version_name_key}=(\S*)/m)&.captures&.first
73
71
  code = text.match(/#{version_code_key}=(\S*)/m)&.captures&.first
74
72
 
@@ -80,15 +78,14 @@ module Fastlane
80
78
  # @return [Hash] A hash with 2 keys `"name"` and `"code"` containing the extracted version name and code, respectively,
81
79
  # or `nil` if `$HAS_ALPHA_VERSION` is not defined.
82
80
  #
83
- def self.get_alpha_version
84
- return get_version_from_properties(is_alpha: true) if File.exist?(version_properties_file)
81
+ def self.get_alpha_version(build_gradle_path:, version_properties_path:)
82
+ return get_version_from_properties(version_properties_path: version_properties_path, is_alpha: true) if File.exist?(version_properties_path)
85
83
 
86
84
  return nil if ENV['HAS_ALPHA_VERSION'].nil?
87
85
 
88
86
  section = 'defaultConfig'
89
- gradle_path = self.gradle_path
90
- name = get_version_name_from_gradle_file(gradle_path, section)
91
- code = get_version_build_from_gradle_file(gradle_path, section)
87
+ name = get_version_name_from_gradle_file(build_gradle_path, section)
88
+ code = get_version_build_from_gradle_file(build_gradle_path, section)
92
89
  return { VERSION_NAME => name, VERSION_CODE => code }
93
90
  end
94
91
 
@@ -280,9 +277,12 @@ module Fastlane
280
277
  #
281
278
  # @return [String] The next release version name to use after bumping the currently used release version.
282
279
  #
283
- def self.bump_version_release
280
+ def self.bump_version_release(build_gradle_path:, version_properties_path:)
284
281
  # Bump release
285
- current_version = self.get_release_version
282
+ current_version = self.get_release_version(
283
+ build_gradle_path: build_gradle_path,
284
+ version_properties_path: version_properties_path
285
+ )
286
286
  UI.message("Current version: #{current_version[VERSION_NAME]}")
287
287
  new_version = calc_next_release_base_version(current_version)
288
288
  UI.message("New version: #{new_version[VERSION_NAME]}")
@@ -296,21 +296,21 @@ module Fastlane
296
296
  # @param [Hash] new_version_beta The version hash for the beta, containing values for keys "name" and "code"
297
297
  # @param [Hash] new_version_alpha The version hash for the alpha , containing values for keys "name" and "code"
298
298
  #
299
- def self.update_versions(new_version_beta, new_version_alpha)
300
- if File.exist?(version_properties_file)
299
+ def self.update_versions(new_version_beta, new_version_alpha, version_properties_path:)
300
+ if File.exist?(version_properties_path)
301
301
  replacements = {
302
302
  versionName: (new_version_beta || {})[VERSION_NAME],
303
303
  versionCode: (new_version_beta || {})[VERSION_CODE],
304
304
  'alpha.versionName': (new_version_alpha || {})[VERSION_NAME],
305
305
  'alpha.versionCode': (new_version_alpha || {})[VERSION_CODE]
306
306
  }
307
- content = File.read(version_properties_file)
307
+ content = File.read(version_properties_path)
308
308
  content.gsub!(/^(.*) ?=.*$/) do |line|
309
309
  key = Regexp.last_match(1).to_sym
310
310
  value = replacements[key]
311
311
  value.nil? ? line : "#{key}=#{value}"
312
312
  end
313
- File.write(version_properties_file, content)
313
+ File.write(version_properties_path, content)
314
314
  else
315
315
  self.update_version(new_version_beta, ENV['HAS_ALPHA_VERSION'].nil? ? 'defaultConfig' : 'vanilla {')
316
316
  self.update_version(new_version_alpha, 'defaultConfig') unless new_version_alpha.nil?
@@ -337,12 +337,10 @@ module Fastlane
337
337
  # @param [String] import_key The key to look for
338
338
  # @return [String] The value of the key, or nil if not found
339
339
  #
340
- def self.get_library_version_from_gradle_config(import_key:)
341
- gradle_file_path = File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', 'build.gradle')
340
+ def self.get_library_version_from_gradle_config(build_gradle_path:, import_key:)
341
+ return nil unless File.exist?(build_gradle_path)
342
342
 
343
- return nil unless File.exist?(gradle_file_path)
344
-
345
- File.open(gradle_file_path, 'r') do |f|
343
+ File.open(build_gradle_path, 'r') do |f|
346
344
  text = f.read
347
345
  text.match(/^\s*(?:\w*\.)?#{Regexp.escape(import_key)}\s*=\s*['"](.*?)["']/m)&.captures&.first
348
346
  end
@@ -456,19 +454,6 @@ module Fastlane
456
454
  return nil
457
455
  end
458
456
 
459
- # The path to the build.gradle file for the project.
460
- #
461
- # @env PROJECT_ROOT_FOLDER The path to the root of the project (the folder containing the `.git` directory).
462
- # @env PROJECT_NAME The name of the project, i.e. the name of the subdirectory containing the project's `build.gradle` file.
463
- #
464
- # @return [String] The path of the `build.gradle` file inside the project subfolder in the project's repo
465
- #
466
- def self.gradle_path
467
- UI.user_error!("You need to set the `PROJECT_ROOT_FOLDER` environment variable to the path to the project's root") if ENV['PROJECT_ROOT_FOLDER'].nil?
468
- UI.user_error!('You need to set the `PROJECT_NAME` environment variable to the relative path to the project subfolder name') if ENV['PROJECT_NAME'].nil?
469
- File.join(ENV['PROJECT_ROOT_FOLDER'], ENV['PROJECT_NAME'], 'build.gradle')
470
- end
471
-
472
457
  # Update both the versionName and versionCode of the build.gradle file to the specified version.
473
458
  #
474
459
  # @param [Hash] version The version hash, containing values for keys "name" and "code"
@@ -477,12 +462,11 @@ module Fastlane
477
462
  # @todo This implementation is very fragile. This should be done parsing the file in a proper way.
478
463
  # Leveraging gradle itself is probably the easiest way.
479
464
  #
480
- def self.update_version(version, section)
481
- gradle_path = self.gradle_path
465
+ def self.update_version(version, section, build_gradle_path:)
482
466
  temp_file = Tempfile.new('fastlaneIncrementVersion')
483
467
  found_section = false
484
468
  version_updated = 0
485
- File.open(gradle_path, 'r') do |file|
469
+ File.open(build_gradle_path, 'r') do |file|
486
470
  file.each_line do |line|
487
471
  if found_section
488
472
  if version_updated < 2
@@ -508,7 +492,7 @@ module Fastlane
508
492
  end
509
493
  temp_file.rewind
510
494
  temp_file.close
511
- FileUtils.mv(temp_file.path, gradle_path)
495
+ FileUtils.mv(temp_file.path, build_gradle_path)
512
496
  temp_file.unlink
513
497
  end
514
498
  end
@@ -0,0 +1,46 @@
1
+ module Fastlane
2
+ module Helper
3
+ # A helper class to store deprecated methods and actions
4
+ class Deprecated
5
+ # Creates a project_root_folder Fastlane ConfigItem
6
+ #
7
+ # @return [FastlaneCore::ConfigItem] The Fastlane ConfigItem for the `PROJECT_ROOT_FOLDER` environment variable
8
+ #
9
+ def self.project_root_folder_config_item
10
+ verify_block = proc do
11
+ UI.deprecated('DEPRECATED: The PROJECT_ROOT_FOLDER environment variable and config item are deprecated and will be removed in a future version of the Release Toolkit. Please provide a full path instead.')
12
+ end
13
+
14
+ FastlaneCore::ConfigItem.new(
15
+ key: :project_root_folder,
16
+ env_name: 'PROJECT_ROOT_FOLDER',
17
+ description: 'The path to the project root folder',
18
+ deprecated: true,
19
+ optional: true,
20
+ verify_block: verify_block,
21
+ type: String
22
+ )
23
+ end
24
+
25
+ # Creates a project_root_folder Fastlane ConfigItem
26
+ #
27
+ # @return [FastlaneCore::ConfigItem] The Fastlane ConfigItem for the `PROJECT_ROOT_FOLDER` environment variable
28
+ #
29
+ def self.project_name_config_item
30
+ verify_block = proc do
31
+ UI.deprecated('DEPRECATED: The PROJECT_NAME environment variable and config item are deprecated and will be removed in a future version of the Release Toolkit. Please provide a full path instead.')
32
+ end
33
+
34
+ FastlaneCore::ConfigItem.new(
35
+ key: :project_name,
36
+ env_name: 'PROJECT_NAME',
37
+ description: 'The app project name',
38
+ deprecated: true,
39
+ optional: true,
40
+ verify_block: verify_block,
41
+ type: String
42
+ )
43
+ end
44
+ end
45
+ end
46
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Fastlane
4
4
  module Wpmreleasetoolkit
5
- VERSION = '9.1.0'
5
+ VERSION = '9.2.0'
6
6
  end
7
7
  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: 9.1.0
4
+ version: 9.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Automattic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-30 00:00:00.000000000 Z
11
+ date: 2023-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -499,6 +499,7 @@ files:
499
499
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/app_size_metrics_helper.rb
500
500
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/ci_helper.rb
501
501
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/configure_helper.rb
502
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/deprecated.rb
502
503
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/encryption_helper.rb
503
504
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/filesystem_helper.rb
504
505
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/git_helper.rb