fastlane 2.183.2 → 2.186.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +93 -86
  3. data/cert/lib/cert/runner.rb +3 -7
  4. data/deliver/lib/deliver/commands_generator.rb +1 -1
  5. data/deliver/lib/deliver/detect_values.rb +5 -3
  6. data/deliver/lib/deliver/download_screenshots.rb +1 -1
  7. data/deliver/lib/deliver/html_generator.rb +2 -2
  8. data/deliver/lib/deliver/module.rb +6 -0
  9. data/deliver/lib/deliver/options.rb +36 -51
  10. data/deliver/lib/deliver/runner.rb +8 -11
  11. data/deliver/lib/deliver/setup.rb +1 -1
  12. data/deliver/lib/deliver/submit_for_review.rb +1 -1
  13. data/deliver/lib/deliver/upload_metadata.rb +20 -6
  14. data/deliver/lib/deliver/upload_price_tier.rb +1 -1
  15. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/adb.rb +1 -4
  17. data/fastlane/lib/fastlane/actions/adb_devices.rb +0 -1
  18. data/fastlane/lib/fastlane/actions/add_git_tag.rb +4 -4
  19. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +10 -15
  20. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +12 -2
  21. data/fastlane/lib/fastlane/actions/appetize.rb +0 -7
  22. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +0 -11
  23. data/fastlane/lib/fastlane/actions/appium.rb +40 -65
  24. data/fastlane/lib/fastlane/actions/apteligent.rb +3 -2
  25. data/fastlane/lib/fastlane/actions/artifactory.rb +5 -6
  26. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +6 -11
  27. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +2 -2
  28. data/fastlane/lib/fastlane/actions/badge.rb +9 -13
  29. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +1 -3
  30. data/fastlane/lib/fastlane/actions/bundle_install.rb +8 -10
  31. data/fastlane/lib/fastlane/actions/carthage.rb +2 -16
  32. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +8 -17
  33. data/fastlane/lib/fastlane/actions/chatwork.rb +3 -2
  34. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +5 -1
  35. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +0 -1
  36. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +0 -1
  37. data/fastlane/lib/fastlane/actions/cloc.rb +9 -13
  38. data/fastlane/lib/fastlane/actions/cocoapods.rb +9 -15
  39. data/fastlane/lib/fastlane/actions/commit_github_file.rb +1 -3
  40. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +6 -7
  41. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +3 -4
  42. data/fastlane/lib/fastlane/actions/crashlytics.rb +7 -11
  43. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +70 -76
  44. data/fastlane/lib/fastlane/actions/create_keychain.rb +9 -10
  45. data/fastlane/lib/fastlane/actions/create_pull_request.rb +0 -9
  46. data/fastlane/lib/fastlane/actions/danger.rb +6 -11
  47. data/fastlane/lib/fastlane/actions/deploygate.rb +1 -2
  48. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +1 -1
  49. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +35 -16
  50. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +10 -4
  51. data/fastlane/lib/fastlane/actions/download_app_privacy_details_from_app_store.rb +1 -1
  52. data/fastlane/lib/fastlane/actions/download_dsyms.rb +3 -4
  53. data/fastlane/lib/fastlane/actions/dsym_zip.rb +1 -1
  54. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +0 -1
  55. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +3 -4
  56. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +3 -5
  57. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +1 -2
  58. data/fastlane/lib/fastlane/actions/environment_variable.rb +13 -21
  59. data/fastlane/lib/fastlane/actions/erb.rb +2 -5
  60. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +1 -1
  61. data/fastlane/lib/fastlane/actions/get_certificates.rb +5 -1
  62. data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +0 -1
  63. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +29 -34
  64. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +5 -1
  65. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
  66. data/fastlane/lib/fastlane/actions/git_add.rb +5 -10
  67. data/fastlane/lib/fastlane/actions/git_commit.rb +2 -6
  68. data/fastlane/lib/fastlane/actions/git_remote_branch.rb +57 -0
  69. data/fastlane/lib/fastlane/actions/github_api.rb +2 -5
  70. data/fastlane/lib/fastlane/actions/gradle.rb +11 -19
  71. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +1 -1
  72. data/fastlane/lib/fastlane/actions/hg_push.rb +1 -1
  73. data/fastlane/lib/fastlane/actions/hipchat.rb +4 -5
  74. data/fastlane/lib/fastlane/actions/hockey.rb +5 -12
  75. data/fastlane/lib/fastlane/actions/ifttt.rb +3 -6
  76. data/fastlane/lib/fastlane/actions/import_from_git.rb +2 -4
  77. data/fastlane/lib/fastlane/actions/increment_build_number.rb +1 -2
  78. data/fastlane/lib/fastlane/actions/install_on_device.rb +3 -6
  79. data/fastlane/lib/fastlane/actions/installr.rb +22 -25
  80. data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
  81. data/fastlane/lib/fastlane/actions/jazzy.rb +8 -14
  82. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +5 -1
  83. data/fastlane/lib/fastlane/actions/register_device.rb +7 -10
  84. data/fastlane/lib/fastlane/actions/register_devices.rb +7 -10
  85. data/fastlane/lib/fastlane/actions/set_changelog.rb +7 -10
  86. data/fastlane/lib/fastlane/actions/swiftlint.rb +17 -15
  87. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +6 -1
  88. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +5 -1
  89. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -1
  90. data/fastlane/lib/fastlane/environment_printer.rb +1 -0
  91. data/fastlane/lib/fastlane/{actions/.git_commit.rb.swp → helper/.git_helper.rb.swp} +0 -0
  92. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +4 -4
  93. data/fastlane/lib/fastlane/helper/git_helper.rb +24 -7
  94. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
  95. data/fastlane/lib/fastlane/setup/setup_ios.rb +3 -3
  96. data/fastlane/lib/fastlane/swift_fastlane_function.rb +9 -6
  97. data/fastlane/lib/fastlane/version.rb +1 -1
  98. data/fastlane/swift/Deliverfile.swift +1 -1
  99. data/fastlane/swift/DeliverfileProtocol.swift +20 -20
  100. data/fastlane/swift/Fastlane.swift +4101 -3656
  101. data/fastlane/swift/Gymfile.swift +1 -1
  102. data/fastlane/swift/GymfileProtocol.swift +1 -1
  103. data/fastlane/swift/Matchfile.swift +1 -1
  104. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  105. data/fastlane/swift/OptionalConfigValue.swift +2 -32
  106. data/fastlane/swift/Precheckfile.swift +1 -1
  107. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  108. data/fastlane/swift/Scanfile.swift +1 -1
  109. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  110. data/fastlane/swift/Screengrabfile.swift +1 -1
  111. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  112. data/fastlane/swift/Snapshotfile.swift +1 -1
  113. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  114. data/fastlane/swift/formatting/Brewfile.lock.json +11 -11
  115. data/fastlane_core/lib/fastlane_core/build_watcher.rb +26 -3
  116. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +5 -0
  117. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +18 -3
  118. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +1 -1
  119. data/fastlane_core/lib/fastlane_core/helper.rb +12 -0
  120. data/fastlane_core/lib/fastlane_core/print_table.rb +5 -3
  121. data/fastlane_core/lib/fastlane_core/project.rb +7 -3
  122. data/match/lib/match/importer.rb +9 -10
  123. data/match/lib/match/migrate.rb +2 -3
  124. data/match/lib/match/nuke.rb +5 -10
  125. data/match/lib/match/options.rb +1 -0
  126. data/match/lib/match/runner.rb +2 -3
  127. data/match/lib/match/spaceship_ensure.rb +3 -0
  128. data/match/lib/match/storage/google_cloud_storage.rb +2 -2
  129. data/match/lib/match/storage/s3_storage.rb +2 -2
  130. data/pilot/lib/pilot/build_manager.rb +4 -1
  131. data/pilot/lib/pilot/manager.rb +7 -8
  132. data/pilot/lib/pilot/options.rb +10 -2
  133. data/precheck/lib/precheck/runner.rb +8 -7
  134. data/sigh/lib/assets/resign.sh +81 -61
  135. data/sigh/lib/sigh/download_all.rb +4 -8
  136. data/sigh/lib/sigh/runner.rb +4 -8
  137. data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
  138. data/snapshot/lib/snapshot/test_command_generator.rb +1 -1
  139. data/spaceship/lib/spaceship/connect_api/api_client.rb +30 -5
  140. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +36 -4
  141. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +10 -0
  142. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +2 -3
  143. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
  144. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +3 -1
  145. data/spaceship/lib/spaceship/connect_api/models/build.rb +5 -1
  146. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  147. data/spaceship/lib/spaceship/connect_api/token.rb +6 -0
  148. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +4 -2
  149. data/spaceship/lib/spaceship/spaceauth_runner.rb +19 -6
  150. metadata +22 -20
@@ -79,22 +79,16 @@ module Fastlane
79
79
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_BETWEEN',
80
80
  description: 'Array containing two Git revision values between which to collect messages, you mustn\'t use it with :commits_count key at the same time',
81
81
  optional: true,
82
- is_string: false,
82
+ type: Array, # allow Array, String both
83
83
  conflicting_options: [:commits_count],
84
84
  verify_block: proc do |value|
85
- if value.kind_of?(String)
86
- UI.user_error!(":between must contain comma") unless value.include?(',')
87
- else
88
- UI.user_error!(":between must be of type array") unless value.kind_of?(Array)
89
- UI.user_error!(":between must not contain nil values") if value.any?(&:nil?)
90
- UI.user_error!(":between must be an array of size 2") unless (value || []).size == 2
91
- end
85
+ UI.user_error!(":between must not contain nil values") if value.any?(&:nil?)
86
+ UI.user_error!(":between must be an array of size 2") unless (value || []).size == 2
92
87
  end),
93
88
  FastlaneCore::ConfigItem.new(key: :commits_count,
94
89
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_COUNT',
95
90
  description: 'Number of commits to include in changelog, you mustn\'t use it with :between key at the same time',
96
91
  optional: true,
97
- is_string: false,
98
92
  conflicting_options: [:between],
99
93
  type: Integer,
100
94
  verify_block: proc do |value|
@@ -109,19 +103,17 @@ module Fastlane
109
103
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_PRETTY',
110
104
  description: 'The format applied to each commit while generating the collected value',
111
105
  optional: true,
112
- default_value: '%B',
113
- is_string: true),
106
+ default_value: '%B'),
114
107
  FastlaneCore::ConfigItem.new(key: :date_format,
115
108
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_DATE_FORMAT',
116
109
  description: 'The date format applied to each commit while generating the collected value',
117
- optional: true,
118
- is_string: true),
110
+ optional: true),
119
111
  FastlaneCore::ConfigItem.new(key: :ancestry_path,
120
112
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_ANCESTRY_PATH',
121
113
  description: 'Whether or not to use ancestry-path param',
122
114
  optional: true,
123
115
  default_value: false,
124
- is_string: false),
116
+ type: Boolean),
125
117
  FastlaneCore::ConfigItem.new(key: :tag_match_pattern,
126
118
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_TAG_MATCH_PATTERN',
127
119
  description: 'A glob(7) pattern to match against when finding the last git tag',
@@ -131,19 +123,18 @@ module Fastlane
131
123
  description: 'Whether or not to match a lightweight tag when searching for the last one',
132
124
  optional: true,
133
125
  default_value: true,
134
- is_string: false),
126
+ type: Boolean),
135
127
  FastlaneCore::ConfigItem.new(key: :quiet,
136
128
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_TAG_QUIET',
137
129
  description: 'Whether or not to disable changelog output',
138
130
  optional: true,
139
131
  default_value: false,
140
- is_string: false),
132
+ type: Boolean),
141
133
  FastlaneCore::ConfigItem.new(key: :include_merges,
142
134
  deprecated: "Use `:merge_commit_filtering` instead",
143
135
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_INCLUDE_MERGES',
144
136
  description: "Whether or not to include any commits that are merges",
145
137
  optional: true,
146
- is_string: false,
147
138
  type: Boolean,
148
139
  verify_block: proc do |value|
149
140
  UI.important("The :include_merges option is deprecated. Please use :merge_commit_filtering instead") unless value.nil?
@@ -41,6 +41,7 @@ module Fastlane
41
41
  env_name: "CHATWORK_API_TOKEN",
42
42
  description: "ChatWork API Token",
43
43
  sensitive: true,
44
+ code_gen_sensitive: true,
44
45
  verify_block: proc do |value|
45
46
  unless value.to_s.length > 0
46
47
  UI.error("Please add 'ENV[\"CHATWORK_API_TOKEN\"] = \"your token\"' to your Fastfile's `before_all` section.")
@@ -53,13 +54,13 @@ module Fastlane
53
54
  FastlaneCore::ConfigItem.new(key: :roomid,
54
55
  env_name: "FL_CHATWORK_ROOMID",
55
56
  description: "The room ID",
56
- is_string: false),
57
+ type: Integer),
57
58
  FastlaneCore::ConfigItem.new(key: :success,
58
59
  env_name: "FL_CHATWORK_SUCCESS",
59
60
  description: "Was this build successful? (true/false)",
60
61
  optional: true,
61
62
  default_value: true,
62
- is_string: false)
63
+ type: Boolean)
63
64
  ]
64
65
  end
65
66
 
@@ -5,9 +5,13 @@ module Fastlane
5
5
 
6
6
  class CheckAppStoreMetadataAction < Action
7
7
  def self.run(config)
8
+ # Only set :api_key from SharedValues if :api_key_path isn't set (conflicting options)
9
+ unless config[:api_key_path]
10
+ config[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
11
+ end
12
+
8
13
  require 'precheck'
9
14
  Precheck.config = config
10
- Precheck.config[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
11
15
  return Precheck::Runner.new.run
12
16
  end
13
17
 
@@ -33,7 +33,6 @@ module Fastlane
33
33
  FastlaneCore::ConfigItem.new(key: :exclude_pattern,
34
34
  env_name: "FL_CLEAN_BUILD_ARTIFACTS_EXCLUDE_PATTERN",
35
35
  description: "Exclude all files from clearing that match the given Regex pattern: e.g. '.*\.mobileprovision'",
36
- default_value: nil,
37
36
  optional: true)
38
37
  ]
39
38
  end
@@ -22,7 +22,6 @@ module Fastlane
22
22
  env_name: "FL_CLEAN_COCOAPODS_CACHE_DEVELOPMENT",
23
23
  description: "Pod name to be removed from cache",
24
24
  optional: true,
25
- is_string: true,
26
25
  verify_block: proc do |value|
27
26
  UI.user_error!("You must specify pod name which should be removed from cache") if value.to_s.empty?
28
27
  end)
@@ -38,28 +38,24 @@ module Fastlane
38
38
  env_name: "FL_CLOC_BINARY_PATH",
39
39
  description: "Where the cloc binary lives on your system (full path including 'cloc')",
40
40
  optional: true,
41
- is_string: true,
42
41
  default_value: '/usr/local/bin/cloc'),
43
42
  FastlaneCore::ConfigItem.new(key: :exclude_dir,
44
43
  env_name: "FL_CLOC_EXCLUDE_DIR",
45
- description: "Comma separated list of directories to exclude", # a short description of this parameter
46
- optional: true,
47
- is_string: true),
44
+ description: "Comma separated list of directories to exclude",
45
+ optional: true),
48
46
  FastlaneCore::ConfigItem.new(key: :output_directory,
49
47
  env_name: "FL_CLOC_OUTPUT_DIRECTORY",
50
48
  description: "Where to put the generated report file",
51
- is_string: true,
52
49
  default_value: "build"),
53
50
  FastlaneCore::ConfigItem.new(key: :source_directory,
54
- env_name: "FL_CLOC_SOURCE_DIRECTORY",
55
- description: "Where to look for the source code (relative to the project root folder)",
56
- is_string: true,
57
- default_value: ""),
51
+ env_name: "FL_CLOC_SOURCE_DIRECTORY",
52
+ description: "Where to look for the source code (relative to the project root folder)",
53
+ default_value: ""),
58
54
  FastlaneCore::ConfigItem.new(key: :xml,
59
- env_name: "FL_CLOC_XML",
60
- description: "Should we generate an XML File (if false, it will generate a plain text file)?",
61
- is_string: false,
62
- default_value: true)
55
+ env_name: "FL_CLOC_XML",
56
+ description: "Should we generate an XML File (if false, it will generate a plain text file)?",
57
+ type: Boolean,
58
+ default_value: true)
63
59
  ]
64
60
  end
65
61
 
@@ -72,66 +72,60 @@ module Fastlane
72
72
  FastlaneCore::ConfigItem.new(key: :repo_update,
73
73
  env_name: "FL_COCOAPODS_REPO_UPDATE",
74
74
  description: "Add `--repo-update` flag to `pod install` command",
75
- is_string: false,
75
+ type: Boolean,
76
76
  default_value: false),
77
77
  FastlaneCore::ConfigItem.new(key: :clean_install,
78
78
  env_name: "FL_COCOAPODS_CLEAN_INSTALL",
79
79
  description: "Execute a full pod installation ignoring the content of the project cache",
80
- is_string: false,
80
+ type: Boolean,
81
81
  default_value: false),
82
82
  FastlaneCore::ConfigItem.new(key: :silent,
83
83
  env_name: "FL_COCOAPODS_SILENT",
84
84
  description: "Execute command without logging output",
85
- is_string: false,
85
+ type: Boolean,
86
86
  default_value: false),
87
87
  FastlaneCore::ConfigItem.new(key: :verbose,
88
88
  env_name: "FL_COCOAPODS_VERBOSE",
89
89
  description: "Show more debugging information",
90
- is_string: false,
90
+ type: Boolean,
91
91
  default_value: false),
92
92
  FastlaneCore::ConfigItem.new(key: :ansi,
93
93
  env_name: "FL_COCOAPODS_ANSI",
94
94
  description: "Show output with ANSI codes",
95
- is_string: false,
95
+ type: Boolean,
96
96
  default_value: true),
97
97
  FastlaneCore::ConfigItem.new(key: :use_bundle_exec,
98
98
  env_name: "FL_COCOAPODS_USE_BUNDLE_EXEC",
99
99
  description: "Use bundle exec when there is a Gemfile presented",
100
- is_string: false,
100
+ type: Boolean,
101
101
  default_value: true),
102
102
  FastlaneCore::ConfigItem.new(key: :podfile,
103
103
  env_name: "FL_COCOAPODS_PODFILE",
104
104
  description: "Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file",
105
105
  optional: true,
106
- is_string: true,
107
106
  verify_block: proc do |value|
108
107
  UI.user_error!("Could not find Podfile") unless File.exist?(value) || Helper.test?
109
108
  end),
110
109
  FastlaneCore::ConfigItem.new(key: :error_callback,
111
110
  description: 'A callback invoked with the command output if there is a non-zero exit status',
112
111
  optional: true,
113
- is_string: false,
114
- type: :string_callback,
115
- default_value: nil),
112
+ type: :string_callback),
116
113
  FastlaneCore::ConfigItem.new(key: :try_repo_update_on_error,
117
114
  env_name: "FL_COCOAPODS_TRY_REPO_UPDATE_ON_ERROR",
118
115
  description: 'Retry with --repo-update if action was finished with error',
119
116
  optional: true,
120
- is_string: false,
121
117
  default_value: false,
122
118
  type: Boolean),
123
119
  FastlaneCore::ConfigItem.new(key: :deployment,
124
120
  env_name: "FL_COCOAPODS_DEPLOYMENT",
125
121
  description: 'Disallow any changes to the Podfile or the Podfile.lock during installation',
126
122
  optional: true,
127
- is_string: false,
128
123
  default_value: false,
129
124
  type: Boolean),
130
125
  FastlaneCore::ConfigItem.new(key: :allow_root,
131
126
  env_name: "FL_COCOAPODS_ALLOW_ROOT",
132
127
  description: 'Allows CocoaPods to run as root',
133
128
  optional: true,
134
- is_string: false,
135
129
  default_value: false,
136
130
  type: Boolean),
137
131
 
@@ -140,13 +134,13 @@ module Fastlane
140
134
  env_name: "FL_COCOAPODS_CLEAN",
141
135
  description: "(Option renamed as clean_install) Remove SCM directories",
142
136
  deprecated: true,
143
- is_string: false,
137
+ type: Boolean,
144
138
  default_value: true),
145
139
  FastlaneCore::ConfigItem.new(key: :integrate,
146
140
  env_name: "FL_COCOAPODS_INTEGRATE",
147
141
  description: "(Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s)",
148
142
  deprecated: true,
149
- is_string: false,
143
+ type: Boolean,
150
144
  default_value: true)
151
145
  ]
152
146
  # Please don't add a version parameter to the `cocoapods` action. If you need to specify a version when running
@@ -107,7 +107,6 @@ module Fastlane
107
107
  description: "Personal API Token for GitHub - generate one at https://github.com/settings/tokens",
108
108
  conflicting_options: [:api_bearer],
109
109
  sensitive: true,
110
- is_string: true,
111
110
  code_gen_sensitive: true,
112
111
  default_value: ENV["GITHUB_API_TOKEN"],
113
112
  default_value_dynamic: true,
@@ -129,7 +128,6 @@ module Fastlane
129
128
  env_name: 'FL_COMMIT_GITHUB_FILE_PATH',
130
129
  description: 'The relative path to your file from project root e.g. assets/my_app.xcarchive',
131
130
  optional: false,
132
- is_string: true,
133
131
  verify_block: proc do |value|
134
132
  value = File.expand_path(value)
135
133
  UI.user_error!("File not found at path '#{value}'") unless File.exist?(value)
@@ -142,7 +140,7 @@ module Fastlane
142
140
  FastlaneCore::ConfigItem.new(key: :secure,
143
141
  env_name: "FL_COMMIT_GITHUB_FILE_SECURE",
144
142
  description: "Optionally disable secure requests (ssl_verify_peer)",
145
- is_string: false,
143
+ type: Boolean,
146
144
  default_value: true,
147
145
  optional: true)
148
146
  ]
@@ -164,20 +164,19 @@ module Fastlane
164
164
  FastlaneCore::ConfigItem.new(key: :force,
165
165
  env_name: "FL_FORCE_COMMIT",
166
166
  description: "Forces the commit, even if other files than the ones containing the version number have been modified",
167
+ type: Boolean,
167
168
  optional: true,
168
- default_value: false,
169
- is_string: false),
169
+ default_value: false),
170
170
  FastlaneCore::ConfigItem.new(key: :settings,
171
171
  env_name: "FL_COMMIT_INCLUDE_SETTINGS",
172
172
  description: "Include Settings.bundle/Root.plist with version bump",
173
+ skip_type_validation: true, # allows Boolean, String, Array
173
174
  optional: true,
174
- default_value: false,
175
- is_string: false),
175
+ default_value: false),
176
176
  FastlaneCore::ConfigItem.new(key: :ignore,
177
177
  description: "A regular expression used to filter matched plist files to be modified",
178
- optional: true,
179
- default_value: nil,
180
- is_string: false),
178
+ skip_type_validation: true, # allows Regex
179
+ optional: true),
181
180
  FastlaneCore::ConfigItem.new(key: :include,
182
181
  description: "A list of extra files to be included in the version bump (string array or comma-separated string)",
183
182
  optional: true,
@@ -57,22 +57,21 @@ module Fastlane
57
57
  [
58
58
  FastlaneCore::ConfigItem.new(key: :keep_original,
59
59
  description: "Set this to false if you want move, rather than copy, the found artifacts",
60
- is_string: false,
60
+ type: Boolean,
61
61
  optional: true,
62
62
  default_value: true),
63
63
  FastlaneCore::ConfigItem.new(key: :target_path,
64
64
  description: "The directory in which you want your artifacts placed",
65
- is_string: false,
66
65
  optional: false,
67
66
  default_value: 'artifacts'),
68
67
  FastlaneCore::ConfigItem.new(key: :artifacts,
69
68
  description: "An array of file patterns of the files/folders you want to preserve",
70
- is_string: false,
69
+ type: Array,
71
70
  optional: false,
72
71
  default_value: []),
73
72
  FastlaneCore::ConfigItem.new(key: :fail_on_missing,
74
73
  description: "Fail when a source file isn't found",
75
- is_string: false,
74
+ type: Boolean,
76
75
  optional: true,
77
76
  default_value: false)
78
77
  ]
@@ -2,9 +2,6 @@ module Fastlane
2
2
  module Actions
3
3
  class CrashlyticsAction < Action
4
4
  def self.run(params)
5
- params[:groups] = params[:groups].join(",") if params[:groups].kind_of?(Array)
6
- params[:emails] = params[:emails].join(",") if params[:emails].kind_of?(Array)
7
-
8
5
  params.values # to validate all inputs before looking for the ipa/apk
9
6
  tempfiles = []
10
7
 
@@ -133,28 +130,27 @@ module Fastlane
133
130
  FastlaneCore::ConfigItem.new(key: :notes,
134
131
  env_name: "CRASHLYTICS_NOTES",
135
132
  description: "The release notes as string - uses :notes_path under the hood",
136
- optional: true,
137
- is_string: true),
133
+ optional: true),
138
134
  FastlaneCore::ConfigItem.new(key: :groups,
139
135
  env_name: "CRASHLYTICS_GROUPS",
140
136
  description: "The groups used for distribution, separated by commas",
141
- optional: true,
142
- is_string: false),
137
+ type: Array,
138
+ optional: true),
143
139
  FastlaneCore::ConfigItem.new(key: :emails,
144
140
  env_name: "CRASHLYTICS_EMAILS",
145
141
  description: "Pass email addresses of testers, separated by commas",
146
- optional: true,
147
- is_string: false),
142
+ type: Array,
143
+ optional: true),
148
144
  FastlaneCore::ConfigItem.new(key: :notifications,
149
145
  env_name: "CRASHLYTICS_NOTIFICATIONS",
150
146
  description: "Crashlytics notification option (true/false)",
151
147
  default_value: true,
152
- is_string: false),
148
+ type: Boolean),
153
149
  FastlaneCore::ConfigItem.new(key: :debug,
154
150
  env_name: "CRASHLYTICS_DEBUG",
155
151
  description: "Crashlytics debug option (true/false)",
156
152
  default_value: false,
157
- is_string: false)
153
+ type: Boolean)
158
154
 
159
155
  ]
160
156
  end
@@ -52,91 +52,85 @@ module Fastlane
52
52
  def self.available_options
53
53
  [
54
54
  # Authorization
55
- FastlaneCore::ConfigItem.new(
56
- key: :json_key,
57
- env_name: "SUPPLY_JSON_KEY",
58
- short_option: "-j",
59
- conflicting_options: [:json_key_data],
60
- optional: true, # optional until it is possible specify either json_key OR json_key_data are required
61
- description: "The path to a file containing service account JSON, used to authenticate with Google",
62
- code_gen_sensitive: true,
63
- default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_file),
64
- default_value_dynamic: true,
65
- verify_block: proc do |value|
66
- UI.user_error!("Could not find service account json file at path '#{File.expand_path(value)}'") unless File.exist?(File.expand_path(value))
67
- UI.user_error!("'#{value}' doesn't seem to be a JSON file") unless FastlaneCore::Helper.json_file?(File.expand_path(value))
68
- end
69
- ),
70
- FastlaneCore::ConfigItem.new(
71
- key: :json_key_data,
72
- env_name: "SUPPLY_JSON_KEY_DATA",
73
- short_option: "-c",
74
- conflicting_options: [:json_key],
75
- optional: true,
76
- description: "The raw service account JSON data used to authenticate with Google",
77
- code_gen_sensitive: true,
78
- default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_data_raw),
79
- default_value_dynamic: true,
80
- verify_block: proc do |value|
81
- begin
82
- JSON.parse(value)
83
- rescue JSON::ParserError
84
- UI.user_error!("Could not parse service account json: JSON::ParseError")
85
- end
86
- end
87
- ),
55
+ FastlaneCore::ConfigItem.new(key: :json_key,
56
+ env_name: "SUPPLY_JSON_KEY",
57
+ short_option: "-j",
58
+ conflicting_options: [:json_key_data],
59
+ optional: true, # optional until it is possible specify either json_key OR json_key_data are required
60
+ description: "The path to a file containing service account JSON, used to authenticate with Google",
61
+ code_gen_sensitive: true,
62
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_file),
63
+ default_value_dynamic: true,
64
+ verify_block: proc do |value|
65
+ UI.user_error!("Could not find service account json file at path '#{File.expand_path(value)}'") unless File.exist?(File.expand_path(value))
66
+ UI.user_error!("'#{value}' doesn't seem to be a JSON file") unless FastlaneCore::Helper.json_file?(File.expand_path(value))
67
+ end),
68
+ FastlaneCore::ConfigItem.new(key: :json_key_data,
69
+ env_name: "SUPPLY_JSON_KEY_DATA",
70
+ short_option: "-c",
71
+ conflicting_options: [:json_key],
72
+ optional: true,
73
+ description: "The raw service account JSON data used to authenticate with Google",
74
+ code_gen_sensitive: true,
75
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_data_raw),
76
+ default_value_dynamic: true,
77
+ verify_block: proc do |value|
78
+ begin
79
+ JSON.parse(value)
80
+ rescue JSON::ParserError
81
+ UI.user_error!("Could not parse service account json: JSON::ParseError")
82
+ end
83
+ end),
88
84
  FastlaneCore::ConfigItem.new(key: :developer_account_id,
89
- short_option: "-k",
90
- env_name: "SUPPLY_DEVELOPER_ACCOUNT_ID",
91
- description: "The ID of your Google Play Console account. Can be obtained from the URL when you log in (`https://play.google.com/apps/publish/?account=...` or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id)",
92
- code_gen_sensitive: true,
93
- default_value: CredentialsManager::AppfileConfig.try_fetch_value(:developer_account_id),
94
- default_value_dynamic: true),
85
+ short_option: "-k",
86
+ env_name: "SUPPLY_DEVELOPER_ACCOUNT_ID",
87
+ description: "The ID of your Google Play Console account. Can be obtained from the URL when you log in (`https://play.google.com/apps/publish/?account=...` or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id)",
88
+ code_gen_sensitive: true,
89
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:developer_account_id),
90
+ default_value_dynamic: true),
95
91
  # APK
96
- FastlaneCore::ConfigItem.new(
97
- key: :apk,
98
- env_name: "SUPPLY_APK",
99
- description: "Path to the APK file to upload",
100
- short_option: "-b",
101
- code_gen_sensitive: true,
102
- default_value: Dir["*.apk"].last || Dir[File.join("app", "build", "outputs", "apk", "app-release.apk")].last,
103
- default_value_dynamic: true,
104
- verify_block: proc do |value|
105
- UI.user_error!("No value found for 'apk'") if value.to_s.length == 0
106
- UI.user_error!("Could not find apk file at path '#{value}'") unless File.exist?(value)
107
- UI.user_error!("apk file is not an apk") unless value.end_with?('.apk')
108
- end
109
- ),
92
+ FastlaneCore::ConfigItem.new(key: :apk,
93
+ env_name: "SUPPLY_APK",
94
+ description: "Path to the APK file to upload",
95
+ short_option: "-b",
96
+ code_gen_sensitive: true,
97
+ default_value: Dir["*.apk"].last || Dir[File.join("app", "build", "outputs", "apk", "app-release.apk")].last,
98
+ default_value_dynamic: true,
99
+ verify_block: proc do |value|
100
+ UI.user_error!("No value found for 'apk'") if value.to_s.length == 0
101
+ UI.user_error!("Could not find apk file at path '#{value}'") unless File.exist?(value)
102
+ UI.user_error!("apk file is not an apk") unless value.end_with?('.apk')
103
+ end),
110
104
  # Title
111
105
  FastlaneCore::ConfigItem.new(key: :app_title,
112
- env_name: "SUPPLY_APP_TITLE",
113
- short_option: "-q",
114
- description: "App Title"),
106
+ env_name: "SUPPLY_APP_TITLE",
107
+ short_option: "-q",
108
+ description: "App Title"),
115
109
  # Language
116
110
  FastlaneCore::ConfigItem.new(key: :language,
117
- short_option: "-m",
118
- env_name: "SUPPLY_LANGUAGE",
119
- description: "Default app language (e.g. 'en_US')",
120
- default_value: "en_US",
121
- verify_block: proc do |language|
122
- unless Supply::Languages::ALL_LANGUAGES.include?(language)
123
- UI.user_error!("Please enter one of the available languages: #{Supply::Languages::ALL_LANGUAGES}")
124
- end
125
- end),
111
+ short_option: "-m",
112
+ env_name: "SUPPLY_LANGUAGE",
113
+ description: "Default app language (e.g. 'en_US')",
114
+ default_value: "en_US",
115
+ verify_block: proc do |language|
116
+ unless Supply::Languages::ALL_LANGUAGES.include?(language)
117
+ UI.user_error!("Please enter one of the available languages: #{Supply::Languages::ALL_LANGUAGES}")
118
+ end
119
+ end),
126
120
  # Google Play API
127
121
  FastlaneCore::ConfigItem.new(key: :root_url,
128
- env_name: "SUPPLY_ROOT_URL",
129
- description: "Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/",
130
- optional: true,
131
- verify_block: proc do |value|
132
- UI.user_error!("Could not parse URL '#{value}'") unless value =~ URI.regexp
133
- end),
122
+ env_name: "SUPPLY_ROOT_URL",
123
+ description: "Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/",
124
+ optional: true,
125
+ verify_block: proc do |value|
126
+ UI.user_error!("Could not parse URL '#{value}'") unless value =~ URI.regexp
127
+ end),
134
128
  FastlaneCore::ConfigItem.new(key: :timeout,
135
- env_name: "SUPPLY_TIMEOUT",
136
- optional: true,
137
- description: "Timeout for read, open, and send (in seconds)",
138
- type: Integer,
139
- default_value: 300)
129
+ env_name: "SUPPLY_TIMEOUT",
130
+ optional: true,
131
+ description: "Timeout for read, open, and send (in seconds)",
132
+ type: Integer,
133
+ default_value: 300)
140
134
  ]
141
135
  end
142
136