fastlane 2.185.0 → 2.188.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +96 -96
  3. data/fastlane/lib/fastlane/actions/appetize.rb +0 -7
  4. data/fastlane/lib/fastlane/actions/appium.rb +40 -65
  5. data/fastlane/lib/fastlane/actions/appledoc.rb +45 -45
  6. data/fastlane/lib/fastlane/actions/apteligent.rb +3 -2
  7. data/fastlane/lib/fastlane/actions/artifactory.rb +5 -6
  8. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +7 -13
  9. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +2 -2
  10. data/fastlane/lib/fastlane/actions/badge.rb +9 -13
  11. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +1 -3
  12. data/fastlane/lib/fastlane/actions/bundle_install.rb +8 -10
  13. data/fastlane/lib/fastlane/actions/carthage.rb +1 -15
  14. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +8 -17
  15. data/fastlane/lib/fastlane/actions/chatwork.rb +3 -2
  16. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +0 -1
  17. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +0 -1
  18. data/fastlane/lib/fastlane/actions/cloc.rb +9 -13
  19. data/fastlane/lib/fastlane/actions/cocoapods.rb +9 -15
  20. data/fastlane/lib/fastlane/actions/commit_github_file.rb +1 -3
  21. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +6 -7
  22. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +3 -4
  23. data/fastlane/lib/fastlane/actions/crashlytics.rb +7 -11
  24. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +70 -76
  25. data/fastlane/lib/fastlane/actions/create_keychain.rb +13 -11
  26. data/fastlane/lib/fastlane/actions/create_pull_request.rb +0 -9
  27. data/fastlane/lib/fastlane/actions/danger.rb +6 -11
  28. data/fastlane/lib/fastlane/actions/deploygate.rb +1 -2
  29. data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
  30. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +26 -27
  31. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +2 -2
  32. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +171 -67
  33. data/fastlane/lib/fastlane/actions/download_app_privacy_details_from_app_store.rb +1 -1
  34. data/fastlane/lib/fastlane/actions/download_dsyms.rb +3 -4
  35. data/fastlane/lib/fastlane/actions/dsym_zip.rb +1 -1
  36. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +0 -1
  37. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +3 -4
  38. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +3 -5
  39. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +1 -2
  40. data/fastlane/lib/fastlane/actions/environment_variable.rb +13 -21
  41. data/fastlane/lib/fastlane/actions/erb.rb +2 -5
  42. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +1 -1
  43. data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +0 -1
  44. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +29 -34
  45. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
  46. data/fastlane/lib/fastlane/actions/git_add.rb +5 -10
  47. data/fastlane/lib/fastlane/actions/git_commit.rb +2 -6
  48. data/fastlane/lib/fastlane/actions/git_remote_branch.rb +57 -0
  49. data/fastlane/lib/fastlane/actions/github_api.rb +2 -5
  50. data/fastlane/lib/fastlane/actions/gradle.rb +12 -20
  51. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +1 -1
  52. data/fastlane/lib/fastlane/actions/hg_push.rb +1 -1
  53. data/fastlane/lib/fastlane/actions/hipchat.rb +4 -5
  54. data/fastlane/lib/fastlane/actions/hockey.rb +5 -12
  55. data/fastlane/lib/fastlane/actions/ifttt.rb +3 -6
  56. data/fastlane/lib/fastlane/actions/import_from_git.rb +2 -4
  57. data/fastlane/lib/fastlane/actions/increment_build_number.rb +1 -2
  58. data/fastlane/lib/fastlane/actions/install_on_device.rb +3 -6
  59. data/fastlane/lib/fastlane/actions/installr.rb +22 -25
  60. data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
  61. data/fastlane/lib/fastlane/actions/jazzy.rb +8 -14
  62. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +3 -4
  63. data/fastlane/lib/fastlane/actions/lcov.rb +0 -4
  64. data/fastlane/lib/fastlane/actions/mailgun.rb +21 -27
  65. data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +1 -1
  66. data/fastlane/lib/fastlane/actions/modify_services.rb +59 -24
  67. data/fastlane/lib/fastlane/actions/nexus_upload.rb +2 -2
  68. data/fastlane/lib/fastlane/actions/notarize.rb +1 -4
  69. data/fastlane/lib/fastlane/actions/number_of_commits.rb +1 -1
  70. data/fastlane/lib/fastlane/actions/oclint.rb +15 -14
  71. data/fastlane/lib/fastlane/actions/pod_push.rb +0 -2
  72. data/fastlane/lib/fastlane/actions/podio_item.rb +0 -7
  73. data/fastlane/lib/fastlane/actions/prompt.rb +3 -4
  74. data/fastlane/lib/fastlane/actions/push_git_tags.rb +1 -1
  75. data/fastlane/lib/fastlane/actions/puts.rb +1 -2
  76. data/fastlane/lib/fastlane/actions/register_devices.rb +0 -1
  77. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +5 -8
  78. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +0 -2
  79. data/fastlane/lib/fastlane/actions/resign.rb +2 -9
  80. data/fastlane/lib/fastlane/actions/rsync.rb +3 -6
  81. data/fastlane/lib/fastlane/actions/run_tests.rb +1 -1
  82. data/fastlane/lib/fastlane/actions/s3.rb +1 -1
  83. data/fastlane/lib/fastlane/actions/say.rb +2 -3
  84. data/fastlane/lib/fastlane/actions/scp.rb +4 -10
  85. data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +1 -1
  86. data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
  87. data/fastlane/lib/fastlane/actions/set_github_release.rb +2 -8
  88. data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +1 -1
  89. data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -4
  90. data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -2
  91. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
  92. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +7 -12
  93. data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
  94. data/fastlane/lib/fastlane/actions/sh.rb +2 -4
  95. data/fastlane/lib/fastlane/actions/slack.rb +6 -8
  96. data/fastlane/lib/fastlane/actions/slather.rb +3 -19
  97. data/fastlane/lib/fastlane/actions/sonar.rb +12 -19
  98. data/fastlane/lib/fastlane/actions/sourcedocs.rb +62 -98
  99. data/fastlane/lib/fastlane/actions/splunkmint.rb +2 -2
  100. data/fastlane/lib/fastlane/actions/spm.rb +3 -3
  101. data/fastlane/lib/fastlane/actions/ssh.rb +5 -10
  102. data/fastlane/lib/fastlane/actions/testfairy.rb +0 -1
  103. data/fastlane/lib/fastlane/actions/tryouts.rb +2 -3
  104. data/fastlane/lib/fastlane/actions/twitter.rb +0 -5
  105. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +3 -3
  106. data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +1 -4
  107. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +8 -15
  108. data/fastlane/lib/fastlane/actions/update_fastlane.rb +2 -2
  109. data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +1 -4
  110. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  111. data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +1 -4
  112. data/fastlane/lib/fastlane/actions/update_plist.rb +1 -1
  113. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +2 -2
  114. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +0 -1
  115. data/fastlane/lib/fastlane/actions/update_url_schemes.rb +15 -26
  116. data/fastlane/lib/fastlane/actions/upload_app_privacy_details_to_app_store.rb +1 -2
  117. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +3 -10
  118. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +40 -44
  119. data/fastlane/lib/fastlane/actions/version_get_podspec.rb +1 -2
  120. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +3 -3
  121. data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
  122. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +1 -1
  123. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +4 -4
  124. data/fastlane/lib/fastlane/helper/git_helper.rb +17 -5
  125. data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +1 -1
  126. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +1 -1
  127. data/fastlane/lib/fastlane/setup/setup_ios.rb +3 -3
  128. data/fastlane/lib/fastlane/swift_fastlane_function.rb +4 -4
  129. data/fastlane/lib/fastlane/version.rb +1 -1
  130. data/fastlane/swift/Deliverfile.swift +1 -1
  131. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  132. data/fastlane/swift/Fastlane.swift +1239 -1222
  133. data/fastlane/swift/Gymfile.swift +1 -1
  134. data/fastlane/swift/GymfileProtocol.swift +1 -1
  135. data/fastlane/swift/Matchfile.swift +1 -1
  136. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  137. data/fastlane/swift/Precheckfile.swift +1 -1
  138. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  139. data/fastlane/swift/Scanfile.swift +1 -1
  140. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  141. data/fastlane/swift/Screengrabfile.swift +1 -1
  142. data/fastlane/swift/ScreengrabfileProtocol.swift +4 -4
  143. data/fastlane/swift/Snapshotfile.swift +1 -1
  144. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  145. data/fastlane/swift/formatting/Brewfile.lock.json +19 -11
  146. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +13 -0
  147. data/fastlane_core/lib/fastlane_core/print_table.rb +5 -3
  148. data/fastlane_core/lib/fastlane_core/project.rb +7 -3
  149. data/match/lib/match/importer.rb +3 -0
  150. data/match/lib/match/nuke.rb +2 -3
  151. data/pilot/lib/pilot.rb +0 -1
  152. data/pilot/lib/pilot/build_manager.rb +0 -3
  153. data/pilot/lib/pilot/manager.rb +4 -1
  154. data/produce/lib/produce/commands_generator.rb +99 -27
  155. data/produce/lib/produce/developer_center.rb +42 -4
  156. data/produce/lib/produce/options.rb +1 -1
  157. data/produce/lib/produce/service.rb +270 -179
  158. data/screengrab/lib/screengrab/android_environment.rb +2 -52
  159. data/screengrab/lib/screengrab/dependency_checker.rb +0 -20
  160. data/screengrab/lib/screengrab/options.rb +5 -2
  161. data/screengrab/lib/screengrab/runner.rb +109 -107
  162. data/snapshot/lib/assets/SnapfileTemplate +2 -1
  163. data/snapshot/lib/assets/SnapfileTemplate.swift +2 -1
  164. data/snapshot/lib/assets/SnapshotHelper.swift +14 -10
  165. data/snapshot/lib/snapshot/reports_generator.rb +3 -1
  166. data/snapshot/lib/snapshot/test_command_generator.rb +17 -3
  167. data/spaceship/lib/spaceship/client.rb +13 -3
  168. data/spaceship/lib/spaceship/connect_api/api_client.rb +30 -5
  169. data/spaceship/lib/spaceship/connect_api/models/{.app_store_version_submission.rb.swp → .bundle_id.rb.swp} +0 -0
  170. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +3 -1
  171. data/spaceship/lib/spaceship/connect_api/models/build.rb +3 -1
  172. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +8 -0
  173. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +58 -17
  174. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +41 -1
  175. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  176. data/spaceship/lib/spaceship/portal/.app.rb.swp +0 -0
  177. data/spaceship/lib/spaceship/spaceauth_runner.rb +19 -6
  178. metadata +25 -28
  179. data/fastlane/lib/fastlane/.erb_template_helper.rb.swp +0 -0
  180. data/fastlane/lib/fastlane/actions/.git_commit.rb.swp +0 -0
  181. data/gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp +0 -0
  182. data/pilot/lib/pilot/features.rb +0 -0
  183. data/spaceship/lib/spaceship/.DS_Store +0 -0
@@ -56,10 +56,7 @@ module Fastlane
56
56
  FastlaneCore::ConfigItem.new(key: :identifiers,
57
57
  env_name: "FL_UPDATE_KEYCHAIN_ACCESS_GROUPS_IDENTIFIERS",
58
58
  description: "An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers']",
59
- is_string: false,
60
- verify_block: proc do |value|
61
- UI.user_error!("The parameter identifiers need to be an Array.") unless value.kind_of?(Array)
62
- end)
59
+ type: Array)
63
60
  ]
64
61
  end
65
62
 
@@ -50,7 +50,7 @@ module Fastlane
50
50
  description: "Path to plist file",
51
51
  optional: true),
52
52
  FastlaneCore::ConfigItem.new(key: :block,
53
- is_string: false,
53
+ type: :string_callback,
54
54
  description: 'A block to process plist with custom logic')
55
55
 
56
56
  ]
@@ -117,7 +117,7 @@ module Fastlane
117
117
  env_name: "FL_PROJECT_PROVISIONING_PROFILE_TARGET_FILTER",
118
118
  description: "A filter for the target name. Use a standard regex",
119
119
  optional: true,
120
- is_string: false,
120
+ skip_type_validation: true, # allow Regexp, String
121
121
  verify_block: proc do |value|
122
122
  UI.user_error!("target_filter should be Regexp or String") unless [Regexp, String].any? { |type| value.kind_of?(type) }
123
123
  end),
@@ -129,7 +129,7 @@ module Fastlane
129
129
  env_name: "FL_PROJECT_PROVISIONING_PROFILE_BUILD_CONFIGURATION",
130
130
  description: "A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified",
131
131
  optional: true,
132
- is_string: false,
132
+ skip_type_validation: true, # allow Regexp, String
133
133
  verify_block: proc do |value|
134
134
  UI.user_error!("build_configuration should be Regexp or String") unless [Regexp, String].any? { |type| value.kind_of?(type) }
135
135
  end),
@@ -58,7 +58,6 @@ module Fastlane
58
58
  description: "The production app secret"),
59
59
  FastlaneCore::ConfigItem.new(key: :detect_provisioning_mode,
60
60
  env_name: "URBAN_AIRSHIP_DETECT_PROVISIONING_MODE",
61
- is_string: false,
62
61
  type: Boolean,
63
62
  optional: true,
64
63
  description: "Automatically detect provisioning mode")
@@ -51,33 +51,22 @@ module Fastlane
51
51
 
52
52
  def self.available_options
53
53
  [
54
- FastlaneCore::ConfigItem.new(
55
- key: :path,
56
- env_name: 'FL_UPDATE_URL_SCHEMES_PATH',
57
- description: 'The Plist file\'s path',
58
- is_string: true,
59
- optional: false,
60
- verify_block: proc do |path|
61
- UI.user_error!("Could not find plist at path '#{path}'") unless File.exist?(path)
62
- end
63
- ),
64
-
65
- FastlaneCore::ConfigItem.new(
66
- key: :url_schemes,
67
- env_name: "FL_UPDATE_URL_SCHEMES_SCHEMES",
68
- description: 'The new URL schemes',
69
- is_string: false,
70
- optional: true,
71
- verify_block: proc do |url_schemes|
72
- string = "The URL schemes must be an array of strings, got '#{url_schemes}'."
73
- verify_schemes!(url_schemes, string)
74
- end
75
- ),
76
-
54
+ FastlaneCore::ConfigItem.new(key: :path,
55
+ env_name: 'FL_UPDATE_URL_SCHEMES_PATH',
56
+ description: 'The Plist file\'s path',
57
+ optional: false,
58
+ verify_block: proc do |path|
59
+ UI.user_error!("Could not find plist at path '#{path}'") unless File.exist?(path)
60
+ end),
61
+ FastlaneCore::ConfigItem.new(key: :url_schemes,
62
+ env_name: "FL_UPDATE_URL_SCHEMES_SCHEMES",
63
+ description: 'The new URL schemes',
64
+ type: Array,
65
+ optional: true),
77
66
  FastlaneCore::ConfigItem.new(key: :update_url_schemes,
78
- description: "Block that is called to update schemes with current schemes passed in as parameter",
79
- optional: true,
80
- is_string: false)
67
+ description: "Block that is called to update schemes with current schemes passed in as parameter",
68
+ optional: true,
69
+ type: :string_callback)
81
70
  ]
82
71
  end
83
72
 
@@ -205,7 +205,7 @@ module Fastlane
205
205
  env_name: "FASTLANE_ITC_TEAM_ID",
206
206
  description: "The ID of your App Store Connect team if you're in multiple teams",
207
207
  optional: true,
208
- is_string: false, # as we also allow integers, which we convert to strings anyway
208
+ skip_type_validation: true, # as we also allow integers, which we convert to strings anyway
209
209
  code_gen_sensitive: true,
210
210
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:itc_team_id),
211
211
  default_value_dynamic: true),
@@ -221,7 +221,6 @@ module Fastlane
221
221
  FastlaneCore::ConfigItem.new(key: :json_path,
222
222
  env_name: "UPLOAD_APP_PRIVACY_DETAILS_TO_APP_STORE_JSON_PATH",
223
223
  description: "Path to the app usage data JSON",
224
- is_string: true,
225
224
  optional: true,
226
225
  verify_block: proc do |value|
227
226
  UI.user_error!("Could not find JSON file at path '#{File.expand_path(value)}'") unless File.exist?(value)
@@ -79,7 +79,6 @@ module Fastlane
79
79
  FastlaneCore::ConfigItem.new(key: :api_host,
80
80
  env_name: "SENTRY_HOST",
81
81
  description: "API host url for Sentry",
82
- is_string: true,
83
82
  default_value: "https://app.getsentry.com/api/0",
84
83
  optional: true),
85
84
  FastlaneCore::ConfigItem.new(key: :api_key,
@@ -109,20 +108,14 @@ module Fastlane
109
108
  description: "Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip",
110
109
  default_value: Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH],
111
110
  default_value_dynamic: true,
112
- optional: true,
113
- verify_block: proc do |value|
114
- # validation is done in the action
115
- end),
111
+ optional: true),
116
112
  FastlaneCore::ConfigItem.new(key: :dsym_paths,
117
113
  env_name: "SENTRY_DSYM_PATHS",
118
114
  description: "Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip",
119
115
  default_value: Actions.lane_context[SharedValues::DSYM_PATHS],
120
116
  default_value_dynamic: true,
121
- is_string: false,
122
- optional: true,
123
- verify_block: proc do |value|
124
- # validation is done in the action
125
- end)
117
+ type: Array,
118
+ optional: true)
126
119
  ]
127
120
  end
128
121
 
@@ -42,53 +42,49 @@ module Fastlane
42
42
 
43
43
  def self.available_options
44
44
  [
45
- FastlaneCore::ConfigItem.new(
46
- key: :json_key,
47
- env_name: "SUPPLY_JSON_KEY",
48
- short_option: "-j",
49
- conflicting_options: [:json_key_data],
50
- optional: true, # this shouldn't be optional but is until I find out how json_key OR json_key_data can be required
51
- description: "The path to a file containing service account JSON, used to authenticate with Google",
52
- code_gen_sensitive: true,
53
- default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_file),
54
- default_value_dynamic: true,
55
- verify_block: proc do |value|
56
- UI.user_error!("Could not find service account json file at path '#{File.expand_path(value)}'") unless File.exist?(File.expand_path(value))
57
- UI.user_error!("'#{value}' doesn't seem to be a JSON file") unless FastlaneCore::Helper.json_file?(File.expand_path(value))
58
- end
59
- ),
60
- FastlaneCore::ConfigItem.new(
61
- key: :json_key_data,
62
- env_name: "SUPPLY_JSON_KEY_DATA",
63
- short_option: "-c",
64
- conflicting_options: [:json_key],
65
- optional: true,
66
- description: "The raw service account JSON data used to authenticate with Google",
67
- code_gen_sensitive: true,
68
- default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_data_raw),
69
- default_value_dynamic: true,
70
- verify_block: proc do |value|
71
- begin
72
- JSON.parse(value)
73
- rescue JSON::ParserError
74
- UI.user_error!("Could not parse service account json: JSON::ParseError")
75
- end
76
- end
77
- ),
45
+ FastlaneCore::ConfigItem.new(key: :json_key,
46
+ env_name: "SUPPLY_JSON_KEY",
47
+ short_option: "-j",
48
+ conflicting_options: [:json_key_data],
49
+ optional: true,
50
+ description: "The path to a file containing service account JSON, used to authenticate with Google",
51
+ code_gen_sensitive: true,
52
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_file),
53
+ default_value_dynamic: true,
54
+ verify_block: proc do |value|
55
+ UI.user_error!("Could not find service account json file at path '#{File.expand_path(value)}'") unless File.exist?(File.expand_path(value))
56
+ UI.user_error!("'#{value}' doesn't seem to be a JSON file") unless FastlaneCore::Helper.json_file?(File.expand_path(value))
57
+ end),
58
+ FastlaneCore::ConfigItem.new(key: :json_key_data,
59
+ env_name: "SUPPLY_JSON_KEY_DATA",
60
+ short_option: "-c",
61
+ conflicting_options: [:json_key],
62
+ optional: true,
63
+ description: "The raw service account JSON data used to authenticate with Google",
64
+ code_gen_sensitive: true,
65
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_data_raw),
66
+ default_value_dynamic: true,
67
+ verify_block: proc do |value|
68
+ begin
69
+ JSON.parse(value)
70
+ rescue JSON::ParserError
71
+ UI.user_error!("Could not parse service account json: JSON::ParseError")
72
+ end
73
+ end),
78
74
  # stuff
79
75
  FastlaneCore::ConfigItem.new(key: :root_url,
80
- env_name: "SUPPLY_ROOT_URL",
81
- description: "Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/",
82
- optional: true,
83
- verify_block: proc do |value|
84
- UI.user_error!("Could not parse URL '#{value}'") unless value =~ URI.regexp
85
- end),
76
+ env_name: "SUPPLY_ROOT_URL",
77
+ description: "Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/",
78
+ optional: true,
79
+ verify_block: proc do |value|
80
+ UI.user_error!("Could not parse URL '#{value}'") unless value =~ URI.regexp
81
+ end),
86
82
  FastlaneCore::ConfigItem.new(key: :timeout,
87
- env_name: "SUPPLY_TIMEOUT",
88
- optional: true,
89
- description: "Timeout for read, open, and send (in seconds)",
90
- type: Integer,
91
- default_value: 300)
83
+ env_name: "SUPPLY_TIMEOUT",
84
+ optional: true,
85
+ description: "Timeout for read, open, and send (in seconds)",
86
+ type: Integer,
87
+ default_value: 300)
92
88
  ]
93
89
  end
94
90
 
@@ -28,7 +28,6 @@ module Fastlane
28
28
  FastlaneCore::ConfigItem.new(key: :path,
29
29
  env_name: "FL_VERSION_PODSPEC_PATH",
30
30
  description: "You must specify the path to the podspec file",
31
- is_string: true,
32
31
  code_gen_sensitive: true,
33
32
  default_value: Dir["*.podspec"].last,
34
33
  default_value_dynamic: true,
@@ -38,7 +37,7 @@ module Fastlane
38
37
  FastlaneCore::ConfigItem.new(key: :require_variable_prefix,
39
38
  env_name: "FL_VERSION_BUMP_PODSPEC_VERSION_REQUIRE_VARIABLE_PREFIX",
40
39
  description: "true by default, this is used for non CocoaPods version bumps only",
41
- is_string: false,
40
+ type: Boolean,
42
41
  default_value: true)
43
42
  ]
44
43
  end
@@ -243,7 +243,7 @@ module Fastlane
243
243
  FastlaneCore::ConfigItem.new(key: :integration_number,
244
244
  env_name: "FL_XCODE_SERVER_GET_ASSETS_INTEGRATION_NUMBER",
245
245
  description: "Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used",
246
- is_string: false,
246
+ type: Integer,
247
247
  optional: true),
248
248
  FastlaneCore::ConfigItem.new(key: :username,
249
249
  env_name: "FL_XCODE_SERVER_GET_ASSETS_USERNAME",
@@ -265,13 +265,13 @@ module Fastlane
265
265
  env_name: "FL_XCODE_SERVER_GET_ASSETS_KEEP_ALL_ASSETS",
266
266
  description: "Whether to keep all assets or let the script delete everything except for the .xcarchive",
267
267
  optional: true,
268
- is_string: false,
268
+ type: Boolean,
269
269
  default_value: false),
270
270
  FastlaneCore::ConfigItem.new(key: :trust_self_signed_certs,
271
271
  env_name: "FL_XCODE_SERVER_GET_ASSETS_TRUST_SELF_SIGNED_CERTS",
272
272
  description: "Whether to trust self-signed certs on your Xcode Server",
273
273
  optional: true,
274
- is_string: false,
274
+ type: Boolean,
275
275
  default_value: true)
276
276
  ]
277
277
  end
@@ -44,7 +44,7 @@ module Fastlane
44
44
  output << ""
45
45
  end
46
46
 
47
- output << "This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run."
47
+ output << "This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run."
48
48
  output << "More information about fastlane can be found on [fastlane.tools](https://fastlane.tools)."
49
49
  output << "The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools)."
50
50
  output << ""
@@ -175,7 +175,7 @@ module Fastlane
175
175
  mkdocs_yml_path = File.join(target_path, "mkdocs.yml")
176
176
  raise "Could not find mkdocs.yml in #{target_path}, make sure to point to the fastlane/docs repo" unless File.exist?(mkdocs_yml_path)
177
177
  mkdocs_yml = YAML.load_file(mkdocs_yml_path)
178
- hidden_actions_array = mkdocs_yml["pages"].find { |p| !p["_Actions"].nil? }
178
+ hidden_actions_array = mkdocs_yml["nav"].find { |p| !p["_Actions"].nil? }
179
179
  hidden_actions_array["_Actions"] = all_actions_ref_yml
180
180
  File.write(mkdocs_yml_path, mkdocs_yml.to_yaml)
181
181
 
@@ -47,9 +47,9 @@ module Fastlane
47
47
  command << params[:api_token]
48
48
  command << params[:build_secret]
49
49
  command << "-ipaPath '#{params[:ipa_path]}'"
50
- command << "-emails '#{params[:emails]}'" if params[:emails]
50
+ command << "-emails '#{params[:emails].join(',')}'" if params[:emails]
51
51
  command << "-notesPath '#{params[:notes_path]}'" if params[:notes_path]
52
- command << "-groupAliases '#{params[:groups]}'" if params[:groups]
52
+ command << "-groupAliases '#{params[:groups].join(',')}'" if params[:groups]
53
53
  command << "-notifications #{(params[:notifications] ? 'YES' : 'NO')}"
54
54
  command << "-debug #{(params[:debug] ? 'YES' : 'NO')}"
55
55
 
@@ -74,9 +74,9 @@ module Fastlane
74
74
  command << "-androidManifest #{File.expand_path(android_manifest_path).shellescape}"
75
75
 
76
76
  # Optional
77
- command << "-betaDistributionEmails #{params[:emails].shellescape}" if params[:emails]
77
+ command << "-betaDistributionEmails #{params[:emails].join(',').shellescape}" if params[:emails]
78
78
  command << "-betaDistributionReleaseNotesFilePath #{File.expand_path(params[:notes_path]).shellescape}" if params[:notes_path]
79
- command << "-betaDistributionGroupAliases #{params[:groups].shellescape}" if params[:groups]
79
+ command << "-betaDistributionGroupAliases #{params[:groups].join(',').shellescape}" if params[:groups]
80
80
  command << "-betaDistributionNotifications #{(params[:notifications] ? 'true' : 'false')}"
81
81
 
82
82
  return command
@@ -131,12 +131,24 @@ module Fastlane
131
131
  # Returns the checked out git branch name or "HEAD" if you're in detached HEAD state
132
132
  def self.git_branch_name_using_HEAD
133
133
  # Rescues if not a git repo or no commits in a git repo
134
- begin
135
- Actions.sh("git rev-parse --abbrev-ref HEAD", log: false).chomp
136
- rescue => err
137
- UI.verbose("Error getting git branch: #{err.message}")
138
- nil
134
+ Actions.sh("git rev-parse --abbrev-ref HEAD", log: false).chomp
135
+ rescue => err
136
+ UI.verbose("Error getting git branch: #{err.message}")
137
+ nil
138
+ end
139
+
140
+ # Returns the default git remote branch name
141
+ def self.git_remote_branch_name(remote_name)
142
+ # Rescues if not a git repo or no remote repo
143
+ if remote_name
144
+ Actions.sh("git remote show #{remote_name} | grep 'HEAD branch' | sed 's/.*: //'", log: false).chomp
145
+ else
146
+ # Query git for the current remote head
147
+ Actions.sh("variable=$(git remote) && git remote show $variable | grep 'HEAD branch' | sed 's/.*: //'", log: false).chomp
139
148
  end
149
+ rescue => err
150
+ UI.verbose("Error getting git default remote branch: #{err.message}")
151
+ nil
140
152
  end
141
153
 
142
154
  private_class_method
@@ -7,7 +7,7 @@ jobs:
7
7
  build:
8
8
  docker:
9
9
  # specify the version you desire here
10
- - image: circleci/ruby:2.4.2
10
+ - image: circleci/ruby:2.5
11
11
 
12
12
  working_directory: ~/repo
13
13
 
@@ -17,7 +17,7 @@ jobs:
17
17
  - name: Set up Ruby
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
20
- ruby-version: 2.4
20
+ ruby-version: 2.5
21
21
  - name: Install dependencies
22
22
  run: bundle check || bundle install --jobs=4 --retry=3 --path vendor/bundle
23
23
  - name: Run tests
@@ -147,9 +147,9 @@ module Fastlane
147
147
  increment_build_number_if_applicable,
148
148
  "\tbuildApp(#{project_prefix}scheme: \"#{self.scheme}\")"]
149
149
  if include_metadata
150
- lane << "\tuploadToAppStore(username: \"#{self.user}\", app: \"#{self.app_identifier}\")"
150
+ lane << "\tuploadToAppStore(username: \"#{self.user}\", appIdentifier: \"#{self.app_identifier}\")"
151
151
  else
152
- lane << "\tuploadToAppStore(username: \"#{self.user}\", app: \"#{self.app_identifier}\", skipScreenshots: true, skipMetadata: true)"
152
+ lane << "\tuploadToAppStore(username: \"#{self.user}\", appIdentifier: \"#{self.app_identifier}\", skipScreenshots: true, skipMetadata: true)"
153
153
  end
154
154
  lane << "}"
155
155
  else
@@ -219,7 +219,7 @@ module Fastlane
219
219
  "\tcaptureScreenshots(#{project_prefix}scheme: \"#{ui_testing_scheme}\")"]
220
220
 
221
221
  if automatic_upload
222
- lane << "\tuploadToAppStore(username: \"#{self.user}\", app: \"#{self.app_identifier}\", skipBinaryUpload: true, skipMetadata: true)"
222
+ lane << "\tuploadToAppStore(username: \"#{self.user}\", appIdentifier: \"#{self.app_identifier}\", skipBinaryUpload: true, skipMetadata: true)"
223
223
  end
224
224
  lane << "}"
225
225
  else
@@ -31,7 +31,7 @@ module Fastlane
31
31
 
32
32
  # rubocop:disable Layout/LineLength
33
33
  # class instance?
34
- @reserved_words = %w[associativity break case catch class continue convenience default deinit didSet do else enum extension fallthrough false final for func guard if in infix init inout internal lazy let mutating nil operator override precedence private public repeat required return self static struct subscript super switch throws true try var weak where while willSet].to_set
34
+ @reserved_words = %w[actor associativity async await break case catch class continue convenience default deinit didSet do else enum extension fallthrough false final for func guard if in infix init inout internal lazy let mutating nil operator override precedence private public repeat required return self static struct subscript super switch throws true try var weak where while willSet].to_set
35
35
  # rubocop:enable Layout/LineLength
36
36
  end
37
37
 
@@ -195,7 +195,7 @@ module Fastlane
195
195
  else
196
196
  if type == "((String) -> Void)?"
197
197
  "#{param}: #{type} = nil"
198
- elsif optional && type.end_with?('?') && !type.start_with?('Any')
198
+ elsif optional && type.end_with?('?') && !type.start_with?('Any') || type.start_with?('Bool')
199
199
  "#{param}: OptionalConfigValue<#{type}> = .fastlaneDefault(#{default_value})"
200
200
  else
201
201
  "#{param}: #{type} = #{default_value}"
@@ -286,7 +286,7 @@ module Fastlane
286
286
  sanitized_name = sanitize_reserved_word(word: sanitized_name)
287
287
  type_string = type_override == :string_callback ? ".stringClosure" : "nil"
288
288
 
289
- if !(type_override == :string_callback || !(is_optional && default_value.nil? && !type.start_with?('Any')))
289
+ if !(type_override == :string_callback || !(is_optional && default_value.nil? && !type.start_with?('Any') || type.start_with?('Bool')))
290
290
  { name: "#{sanitized_name.gsub('`', '')}Arg", arg: "let #{sanitized_name.gsub('`', '')}Arg = #{sanitized_name}.asRubyArgument(name: \"#{name}\", type: #{type_string})" }
291
291
  else
292
292
  { name: "#{sanitized_name.gsub('`', '')}Arg", arg: "let #{sanitized_name.gsub('`', '')}Arg = RubyCommand.Argument(name: \"#{name}\", value: #{sanitized_name}, type: #{type_string})" }
@@ -434,7 +434,7 @@ module Fastlane
434
434
 
435
435
  if type == "((String) -> Void)?"
436
436
  "#{param}: #{type} = nil"
437
- elsif optional && type.end_with?('?') && !type.start_with?('Any')
437
+ elsif (optional && type.end_with?('?') && !type.start_with?('Any')) || type.start_with?('Bool')
438
438
  "#{param}: OptionalConfigValue<#{type}> = .fastlaneDefault(#{self.class_name.downcase}.#{static_var_for_parameter_name})"
439
439
  else
440
440
  "#{param}: #{type} = #{self.class_name.downcase}.#{static_var_for_parameter_name}"
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.185.0'.freeze
2
+ VERSION = '2.188.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '1.12.1'.freeze