fastlane-plugin-wpmreleasetoolkit 1.0.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 (99) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +339 -0
  3. data/README.md +38 -0
  4. data/bin/drawText +19 -0
  5. data/ext/drawText/extconf.rb +36 -0
  6. data/lib/fastlane/plugin/wpmreleasetoolkit.rb +16 -0
  7. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/README.md +20 -0
  8. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/an_localize_libs_action.rb +53 -0
  9. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/an_update_metadata_source_action.rb +171 -0
  10. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/an_validate_lib_strings_action.rb +63 -0
  11. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_betabuild_prechecks.rb +103 -0
  12. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_build_prechecks.rb +83 -0
  13. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_build_preflight.rb +54 -0
  14. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_beta.rb +69 -0
  15. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_final_release.rb +58 -0
  16. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_hotfix.rb +77 -0
  17. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_bump_version_release.rb +89 -0
  18. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_codefreeze_prechecks.rb +79 -0
  19. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_completecodefreeze_prechecks.rb +68 -0
  20. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_create_xml_release_notes.rb +63 -0
  21. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_current_branch_is_hotfix.rb +44 -0
  22. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_download_file_by_version.rb +79 -0
  23. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_download_translations_action.rb +115 -0
  24. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_finalize_prechecks.rb +71 -0
  25. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_alpha_version.rb +44 -0
  26. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_app_version.rb +44 -0
  27. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_get_release_version.rb +44 -0
  28. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_hotifx_prechecks.rb +78 -0
  29. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_merge_translators_strings.rb +106 -0
  30. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_tag_build.rb +51 -0
  31. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_update_metadata.rb +52 -0
  32. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_update_release_notes.rb +56 -0
  33. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/circleci_trigger_job_action.rb +63 -0
  34. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/close_milestone_action.rb +56 -0
  35. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/create_new_milestone_action.rb +59 -0
  36. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/create_release_action.rb +91 -0
  37. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/extract_release_notes_for_version_action.rb +89 -0
  38. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/get_prs_list_action.rb +64 -0
  39. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/gp_downloadmetadata_action.rb +90 -0
  40. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/gp_update_metadata_source.rb +170 -0
  41. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb +247 -0
  42. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/removebranchprotection_action.rb +57 -0
  43. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/setbranchprotection_action.rb +56 -0
  44. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/setfrozentag_action.rb +81 -0
  45. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/configure/configure_add_files_to_copy_action.rb +96 -0
  46. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/configure/configure_apply_action.rb +139 -0
  47. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/configure/configure_download_action.rb +57 -0
  48. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/configure/configure_setup_action.rb +86 -0
  49. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/configure/configure_update_action.rb +139 -0
  50. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/configure/configure_validate_action.rb +134 -0
  51. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/add_development_certificates_to_provisioning_profiles.rb +77 -0
  52. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/add_devices_to_provisioning_profiles.rb +79 -0
  53. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_betabuild_prechecks.rb +92 -0
  54. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_prechecks.rb +74 -0
  55. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb +78 -0
  56. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_bump_version_beta.rb +68 -0
  57. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_bump_version_hotfix.rb +87 -0
  58. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_bump_version_release.rb +114 -0
  59. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_check_beta_deps.rb +62 -0
  60. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_clear_intermediate_tags.rb +60 -0
  61. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_codefreeze_prechecks.rb +70 -0
  62. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_completecodefreeze_prechecks.rb +63 -0
  63. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_current_branch_is_hotfix.rb +40 -0
  64. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_final_tag.rb +52 -0
  65. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_finalize_prechecks.rb +64 -0
  66. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_get_app_version.rb +47 -0
  67. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_get_build_version.rb +60 -0
  68. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_get_store_app_sizes.rb +121 -0
  69. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_hotifx_prechecks.rb +78 -0
  70. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_lint_localizations.rb +167 -0
  71. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_localize_project.rb +44 -0
  72. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_merge_translators_strings.rb +93 -0
  73. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_tag_build.rb +44 -0
  74. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_metadata.rb +40 -0
  75. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_metadata_source.rb +81 -0
  76. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_release_notes.rb +56 -0
  77. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_validate_ci_build.rb +46 -0
  78. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/an_metadata_update_helper.rb +152 -0
  79. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_git_helper.rb +44 -0
  80. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_localize_helper.rb +359 -0
  81. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_version_helper.rb +475 -0
  82. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/ci_helper.rb +91 -0
  83. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/configure_helper.rb +282 -0
  84. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/encryption_helper.rb +51 -0
  85. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/filesystem_helper.rb +93 -0
  86. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/git_helper.rb +224 -0
  87. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/github_helper.rb +135 -0
  88. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_adc_app_sizes_helper.rb +74 -0
  89. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_git_helper.rb +80 -0
  90. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_l10n_helper.rb +208 -0
  91. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_version_helper.rb +348 -0
  92. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata_download_helper.rb +107 -0
  93. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata_update_helper.rb +182 -0
  94. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +399 -0
  95. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/release_notes_helper.rb +21 -0
  96. data/lib/fastlane/plugin/wpmreleasetoolkit/models/configuration.rb +40 -0
  97. data/lib/fastlane/plugin/wpmreleasetoolkit/models/file_reference.rb +86 -0
  98. data/lib/fastlane/plugin/wpmreleasetoolkit/version.rb +5 -0
  99. metadata +449 -0
@@ -0,0 +1,74 @@
1
+ module Fastlane
2
+ module Actions
3
+ class IosBuildPrechecksAction < Action
4
+ def self.run(params)
5
+ require_relative '../../helper/ios/ios_version_helper.rb'
6
+
7
+ message = ''
8
+ message << "Building version #{Fastlane::Helper::Ios::VersionHelper.get_internal_version()} and uploading to App Center\n" if params[:internal]
9
+ message << "Building version #{Fastlane::Helper::Ios::VersionHelper.get_build_version()} and uploading to App Center\n" if params[:internal_on_single_version]
10
+ message << "Building version #{Fastlane::Helper::Ios::VersionHelper.get_build_version()} and uploading to TestFlight\n" if params[:external]
11
+
12
+ if !params[:skip_confirm]
13
+ UI.user_error!('Aborted by user request') unless UI.confirm("#{message}Do you want to continue?")
14
+ else
15
+ UI.message(message)
16
+ end
17
+
18
+ # Check local repo status
19
+ other_action.ensure_git_status_clean() unless other_action.is_ci()
20
+ end
21
+
22
+ #####################################################
23
+ # @!group Documentation
24
+ #####################################################
25
+
26
+ def self.description
27
+ 'Runs some prechecks before the build'
28
+ end
29
+
30
+ def self.details
31
+ 'Runs some prechecks before the build'
32
+ end
33
+
34
+ def self.available_options
35
+ [
36
+ FastlaneCore::ConfigItem.new(key: :skip_confirm,
37
+ env_name: 'FL_IOS_BUILD_PRECHECKS_SKIP_CONFIRM',
38
+ description: 'True to avoid the system ask for confirmation',
39
+ is_string: false,
40
+ default_value: false),
41
+ FastlaneCore::ConfigItem.new(key: :internal,
42
+ env_name: 'FL_IOS_BUILD_PRECHECKS_INTERNAL_BUILD',
43
+ description: 'True if this is for an internal build',
44
+ is_string: false,
45
+ default_value: false),
46
+ FastlaneCore::ConfigItem.new(key: :external,
47
+ env_name: 'FL_IOS_BUILD_PRECHECKS_EXTERNAL_BUILD',
48
+ description: 'True if this is for a public build',
49
+ is_string: false,
50
+ default_value: false),
51
+ FastlaneCore::ConfigItem.new(key: :internal_on_single_version,
52
+ env_name: 'FL_IOS_BUILD_PRECHECKS_INTERNAL_SV_BUILD',
53
+ description: 'True if this is for an internal build that follows the same versioning of the external',
54
+ is_string: false,
55
+ default_value: false),
56
+ ]
57
+ end
58
+
59
+ def self.output
60
+ end
61
+
62
+ def self.return_value
63
+ end
64
+
65
+ def self.authors
66
+ ['loremattei']
67
+ end
68
+
69
+ def self.is_supported?(platform)
70
+ platform == :ios
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,78 @@
1
+ module Fastlane
2
+ module Actions
3
+ class IosBuildPreflightAction < Action
4
+ def self.run(params)
5
+ # Validate mobile configuration secrets
6
+ other_action.configure_apply
7
+
8
+ Action.sh("cd .. && rm -rf #{params[:derived_data_path]}")
9
+
10
+ # Verify that ImageMagick exists on this machine and can be called from the command-line.
11
+ # Internal Builds use it to generate the App Icon as part of the build process
12
+ begin
13
+ Action.sh('which convert')
14
+ rescue
15
+ UI.user_error!("Couldn't find ImageMagick. Please install it by running `brew install imagemagick`")
16
+ raise
17
+ end
18
+
19
+ # Verify that Ghostscript exists on this machine and can be called from the command-line.
20
+ # Internal Builds use it to generate the App Icon as part of the build process
21
+ begin
22
+ Action.sh('which gs')
23
+ rescue
24
+ UI.user_error!("Couldn't find Ghostscript. Please install it by running `brew install ghostscript`")
25
+ raise
26
+ end
27
+
28
+ # Check gems and pods are up to date. This will exit if it fails
29
+ begin
30
+ Action.sh('bundle check')
31
+ rescue
32
+ UI.user_error!("You should run 'rake dependencies' to make sure gems are up to date")
33
+ raise
34
+ end
35
+
36
+ Action.sh('rake dependencies:pod:clean')
37
+ other_action.cocoapods()
38
+ end
39
+
40
+ #####################################################
41
+ # @!group Documentation
42
+ #####################################################
43
+
44
+ def self.description
45
+ 'Clean the environment to ensure a safe build'
46
+ end
47
+
48
+ def self.details
49
+ 'Clean the environment to ensure a safe build'
50
+ end
51
+
52
+ def self.available_options
53
+ [
54
+ FastlaneCore::ConfigItem.new(
55
+ key: :derived_data_path,
56
+ description: "The path to the DerivedData directory for the project. Should match what's used in the `gym` action",
57
+ is_string: true,
58
+ default_value: '~/Library/Developer/Xcode/DerivedData'
59
+ ),
60
+ ]
61
+ end
62
+
63
+ def self.output
64
+ end
65
+
66
+ def self.return_value
67
+ end
68
+
69
+ def self.authors
70
+ ['loremattei']
71
+ end
72
+
73
+ def self.is_supported?(platform)
74
+ platform == :ios
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,68 @@
1
+ module Fastlane
2
+ module Actions
3
+ class IosBumpVersionBetaAction < Action
4
+ def self.run(params)
5
+ UI.message 'Bumping app release version...'
6
+
7
+ require_relative '../../helper/ios/ios_git_helper.rb'
8
+ require_relative '../../helper/ios/ios_version_helper.rb'
9
+
10
+ Fastlane::Helper::GitHelper.ensure_on_branch!('release')
11
+ create_config()
12
+ show_config()
13
+
14
+ UI.message 'Updating XcConfig...'
15
+ Fastlane::Helper::Ios::VersionHelper.update_xc_configs(@new_beta_version, @short_version, @new_internal_version)
16
+ UI.message 'Done!'
17
+
18
+ Fastlane::Helper::Ios::GitHelper.commit_version_bump(include_deliverfile: false, include_metadata: false)
19
+ end
20
+
21
+ #####################################################
22
+ # @!group Documentation
23
+ #####################################################
24
+
25
+ def self.description
26
+ 'Bumps the version of the app for a new beta'
27
+ end
28
+
29
+ def self.details
30
+ 'Bumps the version of the app for a new beta'
31
+ end
32
+
33
+ def self.available_options
34
+ end
35
+
36
+ def self.output
37
+ end
38
+
39
+ def self.return_value
40
+ end
41
+
42
+ def self.authors
43
+ ['loremattei']
44
+ end
45
+
46
+ def self.is_supported?(platform)
47
+ platform == :ios
48
+ end
49
+
50
+ private
51
+
52
+ def self.create_config
53
+ @current_version = Fastlane::Helper::Ios::VersionHelper.get_build_version()
54
+ @current_version_internal = Fastlane::Helper::Ios::VersionHelper.get_internal_version() unless ENV['INTERNAL_CONFIG_FILE'].nil?
55
+ @new_internal_version = Fastlane::Helper::Ios::VersionHelper.create_internal_version(@current_version) unless ENV['INTERNAL_CONFIG_FILE'].nil?
56
+ @new_beta_version = Fastlane::Helper::Ios::VersionHelper.calc_next_build_version(@current_version)
57
+ @short_version = Fastlane::Helper::Ios::VersionHelper.get_short_version_string(@new_beta_version)
58
+ end
59
+
60
+ def self.show_config
61
+ UI.message("Current build version: #{@current_version}")
62
+ UI.message("Current internal version: #{@current_version_internal}") unless ENV['INTERNAL_CONFIG_FILE'].nil?
63
+ UI.message("New beta version: #{@new_beta_version}")
64
+ UI.message("New internal version: #{@new_internal_version}") unless ENV['INTERNAL_CONFIG_FILE'].nil?
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,87 @@
1
+ module Fastlane
2
+ module Actions
3
+ class IosBumpVersionHotfixAction < Action
4
+ def self.run(params)
5
+ UI.message 'Bumping app release version for hotfix...'
6
+
7
+ require_relative '../../helper/ios/ios_git_helper.rb'
8
+ Fastlane::Helper::GitHelper.create_branch("release/#{params[:version]}", from: params[:previous_version])
9
+ create_config(params[:previous_version], params[:version])
10
+ show_config()
11
+
12
+ UI.message 'Updating Fastlane deliver file...'
13
+ Fastlane::Helper::Ios::VersionHelper.update_fastlane_deliver(@new_short_version)
14
+ UI.message 'Done!'
15
+ UI.message 'Updating XcConfig...'
16
+ Fastlane::Helper::Ios::VersionHelper.update_xc_configs(@new_version, @new_short_version, @new_version_internal)
17
+ UI.message 'Done!'
18
+
19
+ Fastlane::Helper::Ios::GitHelper.commit_version_bump(include_deliverfile: true, include_metadata: false)
20
+
21
+ UI.message 'Done.'
22
+ end
23
+
24
+ #####################################################
25
+ # @!group Documentation
26
+ #####################################################
27
+
28
+ def self.description
29
+ 'Bumps the version of the app and creates the new release branch'
30
+ end
31
+
32
+ def self.details
33
+ 'Bumps the version of the app and creates the new release branch'
34
+ end
35
+
36
+ def self.available_options
37
+ # Define all options your action supports.
38
+
39
+ # Below a few examples
40
+ [
41
+ FastlaneCore::ConfigItem.new(key: :version,
42
+ env_name: 'FL_IOS_BUMP_VERSION_HOTFIX_VERSION',
43
+ description: 'The version of the hotfix',
44
+ is_string: true),
45
+ FastlaneCore::ConfigItem.new(key: :previous_version,
46
+ env_name: 'FL_IOS_BUMP_VERSION_HOTFIX_PREVIOUS_VERSION',
47
+ description: 'The version to branch from',
48
+ is_string: true), # the default value if the user didn't provide one
49
+ ]
50
+ end
51
+
52
+ def self.output
53
+ end
54
+
55
+ def self.return_value
56
+ end
57
+
58
+ def self.authors
59
+ ['loremattei']
60
+ end
61
+
62
+ def self.is_supported?(platform)
63
+ platform == :ios
64
+ end
65
+
66
+ private
67
+
68
+ def self.create_config(previous_version, new_short_version)
69
+ @current_version = previous_version
70
+ @current_version_internal = Fastlane::Helper::Ios::VersionHelper.get_internal_version() unless ENV['INTERNAL_CONFIG_FILE'].nil?
71
+ @new_version = "#{new_short_version}.0"
72
+ @new_version_internal = Fastlane::Helper::Ios::VersionHelper.create_internal_version(@new_version) unless ENV['INTERNAL_CONFIG_FILE'].nil?
73
+ @new_short_version = new_short_version
74
+ @new_release_branch = "release/#{@new_short_version}"
75
+ end
76
+
77
+ def self.show_config
78
+ UI.message("Current build version: #{@current_version}")
79
+ UI.message("Current internal version: #{@current_version_internal}") unless ENV['INTERNAL_CONFIG_FILE'].nil?
80
+ UI.message("New build version: #{@new_version}")
81
+ UI.message("New internal version: #{@new_version_internal}") unless ENV['INTERNAL_CONFIG_FILE'].nil?
82
+ UI.message("New short version: #{@new_short_version}")
83
+ UI.message("Release branch: #{@new_release_branch}")
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,114 @@
1
+ module Fastlane
2
+ module Actions
3
+ class IosBumpVersionReleaseAction < Action
4
+ def self.run(params)
5
+ # fastlane will take care of reading in the parameter and fetching the environment variable:
6
+ UI.message 'Bumping app release version...'
7
+
8
+ require_relative '../../helper/ios/ios_version_helper.rb'
9
+ require_relative '../../helper/ios/ios_git_helper.rb'
10
+
11
+ other_action.ensure_git_branch(branch: 'develop')
12
+
13
+ # Create new configuration
14
+ @new_version = Fastlane::Helper::Ios::VersionHelper.bump_version_release()
15
+ create_config()
16
+ show_config()
17
+
18
+ # Update local develop and branch
19
+ Fastlane::Helper::GitHelper.checkout_and_pull('develop')
20
+ Fastlane::Helper::GitHelper.create_branch(@new_release_branch, from: 'develop')
21
+ UI.message 'Done!'
22
+
23
+ UI.message 'Updating glotPressKeys...' unless params[:skip_glotpress]
24
+ update_glotpress_key unless params [:skip_glotpress]
25
+ UI.message 'Done' unless params [:skip_glotpress]
26
+
27
+ UI.message 'Updating Fastlane deliver file...' unless params[:skip_deliver]
28
+ Fastlane::Helper::Ios::VersionHelper.update_fastlane_deliver(@new_short_version) unless params[:skip_deliver]
29
+ UI.message 'Done!' unless params [:skip_deliver]
30
+
31
+ UI.message 'Updating XcConfig...'
32
+ Fastlane::Helper::Ios::VersionHelper.update_xc_configs(@new_version, @new_short_version, @new_version_internal)
33
+ UI.message 'Done!'
34
+
35
+ Fastlane::Helper::Ios::GitHelper.commit_version_bump(
36
+ include_deliverfile: !params[:skip_deliver],
37
+ include_metadata: !params[:skip_glotpress]
38
+ )
39
+
40
+ UI.message 'Done.'
41
+ end
42
+
43
+ #####################################################
44
+ # @!group Documentation
45
+ #####################################################
46
+
47
+ def self.description
48
+ 'Bumps the version of the app and creates the new release branch'
49
+ end
50
+
51
+ def self.details
52
+ 'Bumps the version of the app and creates the new release branch'
53
+ end
54
+
55
+ def self.available_options
56
+ [
57
+ FastlaneCore::ConfigItem.new(key: :skip_glotpress,
58
+ env_name: 'FL_IOS_CODEFREEZE_BUMP_SKIPGLOTPRESS',
59
+ description: 'Skips GlotPress key update',
60
+ is_string: false, # true: verifies the input is a string, false: every kind of value
61
+ default_value: false), # the default value if the user didn't provide one
62
+ FastlaneCore::ConfigItem.new(key: :skip_deliver,
63
+ env_name: 'FL_IOS_CODEFREEZE_BUMP_SKIPDELIVER',
64
+ description: 'Skips Deliver key update',
65
+ is_string: false, # true: verifies the input is a string, false: every kind of value
66
+ default_value: false), # the default value if the user didn't provide one
67
+
68
+ ]
69
+ end
70
+
71
+ def self.output
72
+ end
73
+
74
+ def self.return_value
75
+ end
76
+
77
+ def self.authors
78
+ ['loremattei']
79
+ end
80
+
81
+ def self.is_supported?(platform)
82
+ platform == :ios
83
+ end
84
+
85
+ private
86
+
87
+ def self.create_config
88
+ @current_version = Fastlane::Helper::Ios::VersionHelper.get_build_version()
89
+ @current_version_internal = Fastlane::Helper::Ios::VersionHelper.get_internal_version() unless ENV['INTERNAL_CONFIG_FILE'].nil?
90
+ @new_version_internal = Fastlane::Helper::Ios::VersionHelper.create_internal_version(@new_version) unless ENV['INTERNAL_CONFIG_FILE'].nil?
91
+ @new_short_version = Fastlane::Helper::Ios::VersionHelper.get_short_version_string(@new_version)
92
+ @new_release_branch = "release/#{@new_short_version}"
93
+ end
94
+
95
+ def self.show_config
96
+ UI.message("Current build version: #{@current_version}")
97
+ UI.message("Current internal version: #{@current_version_internal}") unless ENV['INTERNAL_CONFIG_FILE'].nil?
98
+ UI.message("New build version: #{@new_version}")
99
+ UI.message("New internal version: #{@new_version_internal}") unless ENV['INTERNAL_CONFIG_FILE'].nil?
100
+ UI.message("New short version: #{@new_short_version}")
101
+ UI.message("Release branch: #{@new_release_branch}")
102
+ end
103
+
104
+ def self.update_glotpress_key
105
+ dm_file = ENV['DOWNLOAD_METADATA']
106
+ if File.exist?(dm_file)
107
+ sh("sed -i '' \"s/let glotPressWhatsNewKey.*/let glotPressWhatsNewKey = \\\"v#{@new_short_version}-whats-new\\\"/\" #{dm_file}")
108
+ else
109
+ UI.user_error!("Can't find #{dm_file}.")
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,62 @@
1
+ module Fastlane
2
+ module Actions
3
+ class IosCheckBetaDepsAction < Action
4
+ def self.run(params)
5
+ require_relative '../../helper/ios/ios_version_helper.rb'
6
+ require_relative '../../helper/ios/ios_git_helper.rb'
7
+
8
+ beta_pods = []
9
+ File.open(params[:podfile]).each do |li|
10
+ beta_pods << li if li.match('^\s*\t*pod.*beta')
11
+ end
12
+
13
+ if beta_pods.count == 0
14
+ UI.message('No beta pods found. You can continue with the code freeze.')
15
+ else
16
+ message = "The following pods are still in beta:\n"
17
+ beta_pods.each do |bpod|
18
+ message << "#{bpod}\n"
19
+ end
20
+ message << 'Please update to the released version before continuing with the code freeze.'
21
+ end
22
+ UI.important(message)
23
+ end
24
+
25
+ #####################################################
26
+ # @!group Documentation
27
+ #####################################################
28
+
29
+ def self.description
30
+ 'Runs some prechecks before finalizing a release'
31
+ end
32
+
33
+ def self.details
34
+ 'Runs some prechecks before finalizing a release'
35
+ end
36
+
37
+ def self.available_options
38
+ [
39
+ FastlaneCore::ConfigItem.new(key: :podfile,
40
+ env_name: 'FL_IOS_CHECKBETADEPS_PODFILE',
41
+ description: 'Path to the Podfile to analyse',
42
+ is_string: true),
43
+ ]
44
+ end
45
+
46
+ def self.output
47
+ end
48
+
49
+ def self.return_value
50
+ ''
51
+ end
52
+
53
+ def self.authors
54
+ ['loremattei']
55
+ end
56
+
57
+ def self.is_supported?(platform)
58
+ platform == :ios
59
+ end
60
+ end
61
+ end
62
+ end