fastlane-plugin-wpmreleasetoolkit 9.1.0 → 9.2.0

Sign up to get free protection for your applications and to get access to all the features.
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