fastlane 1.102.0 → 1.103.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/lib/.DS_Store +0 -0
  3. data/lib/assets/custom_action_template.rb +0 -6
  4. data/lib/fastlane/.DS_Store +0 -0
  5. data/lib/{assets/completions → fastlane/actions}/.DS_Store +0 -0
  6. data/lib/fastlane/actions/badge.rb +1 -1
  7. data/lib/fastlane/actions/carthage.rb +5 -0
  8. data/lib/fastlane/actions/cocoapods.rb +1 -1
  9. data/lib/fastlane/actions/gym.rb +7 -2
  10. data/lib/fastlane/actions/install_on_device.rb +1 -1
  11. data/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
  12. data/lib/fastlane/actions/pod_lib_lint.rb +1 -1
  13. data/lib/fastlane/actions/pod_push.rb +1 -1
  14. data/lib/fastlane/actions/read_podspec.rb +1 -1
  15. data/lib/fastlane/actions/resign.rb +3 -3
  16. data/lib/fastlane/actions/s3.rb +7 -1
  17. data/lib/fastlane/actions/update_info_plist.rb +1 -1
  18. data/lib/fastlane/actions/verify_pod_keys.rb +1 -1
  19. data/lib/fastlane/actions/version_bump_podspec.rb +1 -1
  20. data/lib/fastlane/actions/version_get_podspec.rb +1 -1
  21. data/lib/fastlane/actions/xcode_select.rb +1 -1
  22. data/lib/fastlane/actions/xcode_server_get_assets.rb +1 -1
  23. data/lib/fastlane/cli_tools_distributor.rb +2 -1
  24. data/lib/fastlane/documentation/docs_generator.rb +1 -0
  25. data/lib/fastlane/fast_file.rb +1 -1
  26. data/lib/fastlane/new_action.rb +2 -2
  27. data/lib/fastlane/plugins/plugin_fetcher.rb +15 -8
  28. data/lib/fastlane/runner.rb +17 -5
  29. data/lib/fastlane/setup/setup_android.rb +2 -2
  30. data/lib/fastlane/setup/setup_ios.rb +4 -4
  31. data/lib/fastlane/version.rb +1 -1
  32. metadata +10 -13
  33. data/lib/assets/.DS_Store +0 -0
  34. data/lib/fastlane/actions/testmunk.rb +0 -78
  35. data/lib/fastlane/setup/.DS_Store +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27005bbd56fe8f3177f6c55a579901a451f824fb
4
- data.tar.gz: 5f673f3759eb6c0e976d07bbca6f0cf980386ac3
3
+ metadata.gz: 1aa696e2b0d7865863f82d76107e06a91d81ed6c
4
+ data.tar.gz: a7a542ac13d7639b678bb8dcc5d5bbd5ac22d607
5
5
  SHA512:
6
- metadata.gz: 5e3ebe918ce03d25857777a02afae4d25f3a9851b69b550584a408bff9d4f59758234889d36355371cfc997bfc4867db982b87eebd8c35029fb10690d540d6b6
7
- data.tar.gz: 351e2a08014ad679d2823bfcb631f6752f8e910b8f22bcd38bd2796947937817fbd72f75ce10c9cd105c44aa4029261e07b49f88bea4dcc5ce96746d83d97852
6
+ metadata.gz: e980f23cfd07e0345300025a41980572b33a24976063e3985945da6109cd8a6f7ba1e196e3596368e013be9889beac87aac6e970380fd7b2e4a6fd7383d9dce3
7
+ data.tar.gz: fb8de57795ac9419ce1d5b26462f54e57edbb5e6e8cff9f7a09c90ccee0570d936826ae30e5f6ff0ae4a75b53ff4e79faf352758e36ed2e87a86d6551e151166
data/lib/.DS_Store CHANGED
Binary file
@@ -4,12 +4,6 @@ module Fastlane
4
4
  [[NAME_UP]]_CUSTOM_VALUE = :[[NAME_UP]]_CUSTOM_VALUE
5
5
  end
6
6
 
7
- # To share this integration with the other fastlane users:
8
- # - Fork https://github.com/fastlane/fastlane/tree/master/fastlane
9
- # - Clone the forked repository
10
- # - Move this integration into lib/fastlane/actions
11
- # - Commit, push and submit the pull request
12
-
13
7
  class [[NAME_CLASS]] < Action
14
8
  def self.run(params)
15
9
  # fastlane will take care of reading in the parameter and fetching the environment variable:
Binary file
@@ -24,7 +24,7 @@ module Fastlane
24
24
  #####################################################
25
25
 
26
26
  def self.description
27
- "Automatically add a badge to your iOS app icon"
27
+ "Automatically add a badge to your app icon"
28
28
  end
29
29
 
30
30
  def self.details
@@ -20,6 +20,7 @@ module Fastlane
20
20
  cmd << "--configuration #{params[:configuration]}" if params[:configuration]
21
21
  cmd << "--derived-data #{params[:derived_data].shellescape}" if params[:derived_data]
22
22
  cmd << "--toolchain #{params[:toolchain]}" if params[:toolchain]
23
+ cmd << "--project-directory #{params[:project_directory]}" if params[:project_directory]
23
24
 
24
25
  Actions.sh(cmd.join(' '))
25
26
  end
@@ -123,6 +124,10 @@ module Fastlane
123
124
  FastlaneCore::ConfigItem.new(key: :toolchain,
124
125
  env_name: "FL_CARTHAGE_TOOLCHAIN",
125
126
  description: "Define which xcodebuild toolchain to use when building",
127
+ optional: true),
128
+ FastlaneCore::ConfigItem.new(key: :project_directory,
129
+ env_name: "FL_CARTHAGE_PROJECT_DIRECTORY",
130
+ description: "Define the directory containing the Carthage project",
126
131
  optional: true)
127
132
  ]
128
133
  end
@@ -50,7 +50,7 @@ module Fastlane
50
50
  default_value: false),
51
51
  FastlaneCore::ConfigItem.new(key: :silent,
52
52
  env_name: "FL_COCOAPODS_SILENT",
53
- description: "Show nothing",
53
+ description: "Execute command without logging output",
54
54
  is_string: false,
55
55
  default_value: false),
56
56
  FastlaneCore::ConfigItem.new(key: :verbose,
@@ -22,10 +22,15 @@ module Fastlane
22
22
  absolute_ipa_path = File.expand_path(Gym::Manager.new.work(values))
23
23
  absolute_dsym_path = absolute_ipa_path.gsub(".ipa", ".app.dSYM.zip")
24
24
 
25
- Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] = absolute_ipa_path
25
+ # This might be the mac app path, so we don't want to set it here
26
+ # https://github.com/fastlane/fastlane/issues/5757
27
+ if absolute_ipa_path.include?(".ipa")
28
+ Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] = absolute_ipa_path
29
+ ENV[SharedValues::IPA_OUTPUT_PATH.to_s] = absolute_ipa_path # for deliver
30
+ end
31
+
26
32
  Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH] = absolute_dsym_path if File.exist?(absolute_dsym_path)
27
33
  Actions.lane_context[SharedValues::XCODEBUILD_ARCHIVE] = Gym::BuildCommandGenerator.archive_path
28
- ENV[SharedValues::IPA_OUTPUT_PATH.to_s] = absolute_ipa_path # for deliver
29
34
  ENV[SharedValues::DSYM_OUTPUT_PATH.to_s] = absolute_dsym_path if File.exist?(absolute_dsym_path)
30
35
 
31
36
  return absolute_ipa_path
@@ -69,7 +69,7 @@ module Fastlane
69
69
  end
70
70
 
71
71
  def self.is_supported?(platform)
72
- true
72
+ platform == :ios
73
73
  end
74
74
  end
75
75
  end
@@ -12,7 +12,7 @@ module Fastlane
12
12
 
13
13
  credentials = CredentialsManager::AccountManager.new(user: params[:username])
14
14
  Spaceship::Tunes.login(credentials.user, credentials.password)
15
- ENV["FASTLANE_TEAM_ID"] = params[:team_id]
15
+ ENV["FASTLANE_ITC_TEAM_ID"] = params[:team_id]
16
16
  Spaceship::Tunes.select_team
17
17
  app = Spaceship::Tunes::Application.find(params[:app_identifier])
18
18
 
@@ -84,7 +84,7 @@ module Fastlane
84
84
  default_value: 1,
85
85
  is_string: false),
86
86
  FastlaneCore::ConfigItem.new(key: :team_id,
87
- env_name: "FASTLANE_TEAM_ID",
87
+ env_name: "FASTLANE_ITC_TEAM_ID",
88
88
  description: "Your team ID if you're in multiple teams",
89
89
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:itc_team_id),
90
90
  optional: true)
@@ -97,7 +97,7 @@ module Fastlane
97
97
  end
98
98
 
99
99
  def self.is_supported?(platform)
100
- true
100
+ [:ios, :mac].include?(platform)
101
101
  end
102
102
  end
103
103
  end
@@ -85,7 +85,7 @@ module Fastlane
85
85
  end
86
86
 
87
87
  def self.is_supported?(platform)
88
- true
88
+ [:ios, :mac].include? platform
89
89
  end
90
90
  end
91
91
  end
@@ -58,7 +58,7 @@ module Fastlane
58
58
  end
59
59
 
60
60
  def self.is_supported?(platform)
61
- true
61
+ [:ios, :mac].include? platform
62
62
  end
63
63
  end
64
64
  end
@@ -66,7 +66,7 @@ module Fastlane
66
66
  end),
67
67
  FastlaneCore::ConfigItem.new(key: :version,
68
68
  env_name: "FL_RESIGN_VERSION",
69
- description: "Version number to force resigned ipa to use.\nUpdates both CFBundleShortVersionString and CFBundleIdentifier values in Info.plist.\nApplies for main app and all nested apps or extensions",
69
+ description: "Version number to force resigned ipa to use.\nUpdates both CFBundleShortVersionString and CFBundleVersion values in Info.plist.\nApplies for main app and all nested apps or extensions",
70
70
  conflicting_options: [:short_version, :bundle_version],
71
71
  is_string: true,
72
72
  optional: true),
@@ -83,13 +83,13 @@ module Fastlane
83
83
  optional: true),
84
84
  FastlaneCore::ConfigItem.new(key: :bundle_version,
85
85
  env_name: "FL_RESIGN_BUNDLE_VERSION",
86
- description: "Bundle version to force resigned ipa to use (CFBundleIdentifier)",
86
+ description: "Bundle version to force resigned ipa to use (CFBundleVersion)",
87
87
  conflicting_options: [:version],
88
88
  is_string: true,
89
89
  optional: true),
90
90
  FastlaneCore::ConfigItem.new(key: :bundle_id,
91
91
  env_name: "FL_RESIGN_BUNDLE_ID",
92
- description: "Set new bundle ID during resign",
92
+ description: "Set new bundle ID during resign (CFBundleIdentifier)",
93
93
  is_string: true,
94
94
  optional: true),
95
95
  FastlaneCore::ConfigItem.new(key: :use_app_entitlements,
@@ -38,6 +38,7 @@ module Fastlane
38
38
  params[:path] = config[:path]
39
39
  params[:upload_metadata] = config[:upload_metadata]
40
40
  params[:plist_template_path] = config[:plist_template_path]
41
+ params[:plist_file_name] = config[:plist_file_name]
41
42
  params[:html_template_path] = config[:html_template_path]
42
43
  params[:html_file_name] = config[:html_file_name]
43
44
  params[:version_template_path] = config[:version_template_path]
@@ -61,6 +62,7 @@ module Fastlane
61
62
  UI.user_error!("No IPA file path given, pass using `ipa: 'ipa path'`") unless ipa_file.to_s.length > 0
62
63
 
63
64
  plist_template_path = params[:plist_template_path]
65
+ plist_file_name = params[:plist_file_name]
64
66
  html_template_path = params[:html_template_path]
65
67
  html_file_name = params[:html_file_name]
66
68
  version_template_path = params[:version_template_path]
@@ -115,7 +117,7 @@ module Fastlane
115
117
  full_version = "#{bundle_version}.#{build_num}"
116
118
 
117
119
  # Creating plist and html names
118
- plist_file_name = "#{url_part}#{title.delete(' ')}.plist"
120
+ plist_file_name ||= "#{url_part}#{title.delete(' ')}.plist"
119
121
  plist_url = "https://#{s3_subdomain}.amazonaws.com/#{s3_bucket}/#{plist_file_name}"
120
122
 
121
123
  html_file_name ||= "index.html"
@@ -280,6 +282,10 @@ module Fastlane
280
282
  env_name: "",
281
283
  description: "plist template path",
282
284
  optional: true),
285
+ FastlaneCore::ConfigItem.new(key: :plist_file_name,
286
+ env_name: "",
287
+ description: "uploaded plist filename",
288
+ optional: true),
283
289
  FastlaneCore::ConfigItem.new(key: :html_template_path,
284
290
  env_name: "",
285
291
  description: "html erb template path",
@@ -33,7 +33,7 @@ module Fastlane
33
33
 
34
34
  # Read existing plist file
35
35
  info_plist_path = File.join(folder, "..", params[:plist_path])
36
- UI.user_error!("Couldn't find info plist file at path '#{params[:plist_path]}'") unless File.exist?(info_plist_path)
36
+ UI.user_error!("Couldn't find info plist file at path '#{info_plist_path}'") unless File.exist?(info_plist_path)
37
37
  plist = Xcodeproj::Plist.read_from_path(info_plist_path)
38
38
 
39
39
  # Update plist values
@@ -46,7 +46,7 @@ module Fastlane
46
46
  end
47
47
 
48
48
  def self.is_supported?(platform)
49
- return true
49
+ [:ios, :mac].include? platform
50
50
  end
51
51
  end
52
52
  end
@@ -72,7 +72,7 @@ module Fastlane
72
72
  end
73
73
 
74
74
  def self.is_supported?(platform)
75
- true
75
+ [:ios, :mac].include? platform
76
76
  end
77
77
  end
78
78
  end
@@ -43,7 +43,7 @@ module Fastlane
43
43
  end
44
44
 
45
45
  def self.is_supported?(platform)
46
- true
46
+ [:ios, :mac].include? platform
47
47
  end
48
48
  end
49
49
  end
@@ -23,7 +23,7 @@ module Fastlane
23
23
  xcode_path = (params || []).first
24
24
 
25
25
  # Verify that a param was passed in
26
- UI.user_error!("Path to Xcode application required (e.x. \"/Applications/Xcode.app\")") unless xcode_path.to_s.length > 0
26
+ UI.user_error!("Path to Xcode application required (e.g. `xcode_select(\"/Applications/Xcode.app\")`)") unless xcode_path.to_s.length > 0
27
27
 
28
28
  # Verify that a path to a directory was passed in
29
29
  UI.user_error!("Path '#{xcode_path}' doesn't exist") unless Dir.exist?(xcode_path)
@@ -287,7 +287,7 @@ module Fastlane
287
287
  end
288
288
 
289
289
  def self.is_supported?(platform)
290
- true
290
+ [:ios, :mac].include? platform
291
291
  end
292
292
  end
293
293
  end
@@ -60,7 +60,8 @@ module Fastlane
60
60
  end
61
61
 
62
62
  def print_slow_fastlane_warning
63
- return if ENV['BUNDLE_BIN_PATH'] # `BUNDLE_BIN_PATH` is used when the user uses `bundle exec`
63
+ # `BUNDLE_BIN_PATH` is used when the user uses `bundle exec`
64
+ return if ENV['BUNDLE_BIN_PATH'] || ENV['SKIP_SLOW_FASTLANE_WARNING']
64
65
 
65
66
  gemfile_path = PluginManager.new.gemfile_path
66
67
  if gemfile_path
@@ -38,6 +38,7 @@ module Fastlane
38
38
  output << "This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run."
39
39
  output << "More information about fastlane can be found on [https://fastlane.tools](https://fastlane.tools)."
40
40
  output << "The documentation of fastlane can be found on [GitHub](https://github.com/fastlane/fastlane/tree/master/fastlane)."
41
+ output << ""
41
42
 
42
43
  File.write(output_path, output.join("\n"))
43
44
  UI.success "Successfully generated documentation at path '#{File.expand_path(output_path)}'" if $verbose
@@ -217,7 +217,7 @@ module Fastlane
217
217
  branch_option = ""
218
218
  branch_option = "--branch #{branch}" if branch != 'HEAD'
219
219
 
220
- clone_command = "git clone '#{url}' '#{clone_folder}' --depth 1 -n #{branch_option}"
220
+ clone_command = "GIT_TERMINAL_PROMPT=0 git clone '#{url}' '#{clone_folder}' --depth 1 -n #{branch_option}"
221
221
 
222
222
  UI.message "Cloning remote git repo..."
223
223
  Actions.sh(clone_command)
@@ -9,10 +9,10 @@ module Fastlane
9
9
  def self.fetch_name
10
10
  puts "Must be lower case, and use a '_' between words. Do not use '.'".green
11
11
  puts "examples: 'testflight', 'upload_to_s3'".green
12
- name = ask('Name of your action: ')
12
+ name = UI.input("Name of your action: ")
13
13
  until name_valid?(name)
14
14
  puts "Name is invalid. Please ensure the name is all lowercase, free of spaces and without special characters! Try again."
15
- name = ask('Name of your action: ')
15
+ name = UI.input("Name of your action: ")
16
16
  end
17
17
  name
18
18
  end
@@ -8,29 +8,36 @@ module Fastlane
8
8
  def self.fetch_gems(search_query: nil)
9
9
  require 'json'
10
10
  require 'open-uri'
11
- url = "https://rubygems.org/api/v1/search.json?query=#{PluginManager.plugin_prefix}#{search_query}"
12
- FastlaneCore::UI.verbose("RubyGems API Request: #{url}")
13
- results = JSON.parse(open(url).read)
14
11
 
15
- plugins = results.collect do |current|
16
- FastlanePlugin.new(current)
12
+ page = 1
13
+ plugins = []
14
+ loop do
15
+ url = "https://rubygems.org/api/v1/search.json?query=#{PluginManager.plugin_prefix}#{search_query}&page=#{page}"
16
+ FastlaneCore::UI.verbose("RubyGems API Request: #{url}")
17
+ results = JSON.parse(open(url).read)
18
+ break if results.count == 0
19
+
20
+ plugins += results.collect do |current|
21
+ FastlanePlugin.new(current)
22
+ end
23
+ page += 1
17
24
  end
18
25
 
19
26
  return plugins if search_query.to_s.length == 0
20
-
21
27
  plugins.keep_if do |current|
22
28
  current.full_name.include?(search_query)
23
29
  end
30
+
31
+ return plugins
24
32
  end
25
33
 
26
- def self.update_md_file!
34
+ def self.update_md_file!(output_path: "docs/AvailablePlugins.md")
27
35
  @plugins = fetch_gems
28
36
 
29
37
  template_path = File.join(Fastlane::ROOT, "lib/assets/AvailablePlugins.md.erb")
30
38
  md = ERB.new(File.read(template_path), nil, '<>').result(binding) # http://www.rrn.dk/rubys-erb-templating-system
31
39
 
32
40
  puts md
33
- output_path = "docs/AvailablePlugins.md"
34
41
  File.write(output_path, md)
35
42
  FastlaneCore::UI.success("Successfully written plugin file to '#{output_path}'")
36
43
  end
@@ -82,14 +82,26 @@ module Fastlane
82
82
  all
83
83
  end
84
84
 
85
+ # Pass a action symbol (e.g. :deliver or :commit_version_bump)
86
+ # and this method will return a reference to the action class
87
+ # if it exists. In case the action with this name can't be found
88
+ # this method will return nil.
89
+ # This method is being called by `trigger_action_by_name` to see
90
+ # if a given action is available (either built-in or loaded from a plugin)
91
+ # and is also being called from the fastlane docs generator
92
+ def class_reference_from_action_name(method_sym)
93
+ method_str = method_sym.to_s.delete("?") # as a `?` could be at the end of the method name
94
+ class_ref = Actions.action_class_ref(method_str)
95
+
96
+ return class_ref if class_ref && class_ref.respond_to?(:run)
97
+ nil
98
+ end
99
+
85
100
  # This is being called from `method_missing` from the Fastfile
86
101
  # It's also used when an action is called from another action
87
102
  def trigger_action_by_name(method_sym, custom_dir, *arguments)
88
- method_str = method_sym.to_s
89
- method_str.delete!('?') # as a `?` could be at the end of the method name
90
-
91
103
  # First, check if there is a predefined method in the actions folder
92
- class_ref = Actions.action_class_ref(method_str)
104
+ class_ref = class_reference_from_action_name(method_sym)
93
105
 
94
106
  # It's important to *not* have this code inside the rescue block
95
107
  # otherwise all NameErrors will be caught and the error message is
@@ -111,7 +123,7 @@ module Fastlane
111
123
  if Fastlane.plugin_manager.plugin_is_added_as_dependency?(PluginManager.plugin_prefix + method_sym.to_s)
112
124
  # That's a plugin, but for some reason we can't find it
113
125
  UI.user_error!("Plugin '#{method_sym}' was not properly loaded, make sure to follow the plugin docs for troubleshooting: #{PluginManager::TROUBLESHOOTING_URL}")
114
- elsif Fastlane::Actions.formerly_bundled_actions.include?(method_str)
126
+ elsif Fastlane::Actions.formerly_bundled_actions.include?(method_sym.to_s)
115
127
  # This was a formerly bundled action which is now a plugin.
116
128
  UI.verbose(caller.join("\n"))
117
129
  UI.user_error!("The action '#{method_sym}' is no longer bundled with fastlane. You can install it using `fastlane add_plugin #{method_sym}`")
@@ -24,12 +24,12 @@ module Fastlane
24
24
  UI.message('------------------------------')
25
25
  UI.success('To not re-enter your packagename and issuer every time you run one of the fastlane tools or fastlane, these will be stored in a so-called Appfile.')
26
26
 
27
- package_name = ask('Package Name (com.krausefx.app): '.yellow)
27
+ package_name = UI.input("Package Name (com.krausefx.app): ")
28
28
  puts ""
29
29
  puts "To automatically upload builds and metadata to Google Play, fastlane needs a service action json secret file".yellow
30
30
  puts "Feel free to just click Enter to skip not provide certain things"
31
31
  puts "Follow the Setup Guide on how to get the Json file: https://github.com/fastlane/fastlane/tree/master/supply#setup".yellow
32
- json_key_file = ask('Path to the json secret file: '.yellow)
32
+ json_key_file = UI.input("Path to the json secret file: ")
33
33
 
34
34
  template = File.read("#{Fastlane::ROOT}/lib/assets/AppfileTemplateAndroid")
35
35
  template.gsub!('[[JSON_KEY_FILE]]', json_key_file)
@@ -148,11 +148,11 @@ module Fastlane
148
148
  end
149
149
 
150
150
  def ask_for_apple_id
151
- self.apple_id ||= ask('Your Apple ID (e.g. fastlane@krausefx.com): '.yellow)
151
+ self.apple_id ||= UI.input("Your Apple ID (e.g. fastlane@krausefx.com): ")
152
152
  end
153
153
 
154
154
  def ask_for_app_identifier
155
- self.app_identifier = ask('App Identifier (com.krausefx.app): '.yellow)
155
+ self.app_identifier = UI.input("App Identifier (com.krausefx.app): ")
156
156
  end
157
157
 
158
158
  def generate_appfile(manually: false)
@@ -207,7 +207,7 @@ module Fastlane
207
207
  rescue => exception
208
208
  if exception.to_s.include?("The App Name you entered has already been used")
209
209
  UI.important("It looks like that #{project.app_name} has already been taken by someone else, please enter an alternative.")
210
- Produce.config[:app_name] = ask("App Name: ".yellow)
210
+ Produce.config[:app_name] = UI.input("App Name: ")
211
211
  Produce.config[:skip_devcenter] = true # since we failed on iTC
212
212
  ENV['PRODUCE_APPLE_ID'] = Produce::Manager.start_producing
213
213
  end
@@ -235,7 +235,7 @@ module Fastlane
235
235
 
236
236
  template = File.read("#{Fastlane::ROOT}/lib/assets/DefaultFastfileTemplate")
237
237
 
238
- scheme = ask("Optional: The scheme name of your app (If you don't need one, just hit Enter): ").to_s.strip unless scheme
238
+ scheme = UI.input("Optional: The scheme name of your app (If you don't need one, just hit Enter): ") unless scheme
239
239
  if scheme.length > 0
240
240
  template.gsub!('[[SCHEME]]', "(scheme: \"#{scheme}\")")
241
241
  else
@@ -1,4 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '1.102.0'.freeze
2
+ VERSION = '1.103.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate building and releasing your iOS and Android apps"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.102.0
4
+ version: 1.103.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2016-08-29 00:00:00.000000000 Z
18
+ date: 2016-09-14 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: krausefx-shenzhen
@@ -183,7 +183,7 @@ dependencies:
183
183
  requirements:
184
184
  - - ">="
185
185
  - !ruby/object:Gem::Version
186
- version: 0.50.2
186
+ version: 0.52.0
187
187
  - - "<"
188
188
  - !ruby/object:Gem::Version
189
189
  version: 1.0.0
@@ -193,7 +193,7 @@ dependencies:
193
193
  requirements:
194
194
  - - ">="
195
195
  - !ruby/object:Gem::Version
196
- version: 0.50.2
196
+ version: 0.52.0
197
197
  - - "<"
198
198
  - !ruby/object:Gem::Version
199
199
  version: 1.0.0
@@ -237,7 +237,7 @@ dependencies:
237
237
  requirements:
238
238
  - - ">="
239
239
  - !ruby/object:Gem::Version
240
- version: 0.32.0
240
+ version: 0.32.1
241
241
  - - "<"
242
242
  - !ruby/object:Gem::Version
243
243
  version: 1.0.0
@@ -247,7 +247,7 @@ dependencies:
247
247
  requirements:
248
248
  - - ">="
249
249
  - !ruby/object:Gem::Version
250
- version: 0.32.0
250
+ version: 0.32.1
251
251
  - - "<"
252
252
  - !ruby/object:Gem::Version
253
253
  version: 1.0.0
@@ -357,7 +357,7 @@ dependencies:
357
357
  requirements:
358
358
  - - ">="
359
359
  - !ruby/object:Gem::Version
360
- version: 1.10.0
360
+ version: 1.10.2
361
361
  - - "<"
362
362
  - !ruby/object:Gem::Version
363
363
  version: 2.0.0
@@ -367,7 +367,7 @@ dependencies:
367
367
  requirements:
368
368
  - - ">="
369
369
  - !ruby/object:Gem::Version
370
- version: 1.10.0
370
+ version: 1.10.2
371
371
  - - "<"
372
372
  - !ruby/object:Gem::Version
373
373
  version: 2.0.0
@@ -694,13 +694,11 @@ files:
694
694
  - bin/fastlane
695
695
  - "bin/\U0001F680"
696
696
  - lib/.DS_Store
697
- - lib/assets/.DS_Store
698
697
  - lib/assets/AppfileTemplate
699
698
  - lib/assets/AppfileTemplateAndroid
700
699
  - lib/assets/AvailablePlugins.md.erb
701
700
  - lib/assets/DefaultFastfileTemplate
702
701
  - lib/assets/FastfileTemplateAndroid
703
- - lib/assets/completions/.DS_Store
704
702
  - lib/assets/completions/completion.bash
705
703
  - lib/assets/completions/completion.sh
706
704
  - lib/assets/completions/completion.zsh
@@ -714,6 +712,7 @@ files:
714
712
  - lib/fastlane/.DS_Store
715
713
  - lib/fastlane/action.rb
716
714
  - lib/fastlane/action_collector.rb
715
+ - lib/fastlane/actions/.DS_Store
717
716
  - lib/fastlane/actions/README.md
718
717
  - lib/fastlane/actions/actions_helper.rb
719
718
  - lib/fastlane/actions/adb.rb
@@ -858,7 +857,6 @@ files:
858
857
  - lib/fastlane/actions/team_name.rb
859
858
  - lib/fastlane/actions/testfairy.rb
860
859
  - lib/fastlane/actions/testflight.rb
861
- - lib/fastlane/actions/testmunk.rb
862
860
  - lib/fastlane/actions/tryouts.rb
863
861
  - lib/fastlane/actions/twitter.rb
864
862
  - lib/fastlane/actions/typetalk.rb
@@ -944,7 +942,6 @@ files:
944
942
  - lib/fastlane/plugins/template/spec/%plugin_name%_action_spec.rb.erb
945
943
  - lib/fastlane/plugins/template/spec/spec_helper.rb.erb
946
944
  - lib/fastlane/runner.rb
947
- - lib/fastlane/setup/.DS_Store
948
945
  - lib/fastlane/setup/crashlytics_beta.rb
949
946
  - lib/fastlane/setup/crashlytics_beta_command_line_handler.rb
950
947
  - lib/fastlane/setup/crashlytics_beta_info.rb
@@ -978,7 +975,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
978
975
  version: '0'
979
976
  requirements: []
980
977
  rubyforge_project:
981
- rubygems_version: 2.2.2
978
+ rubygems_version: 2.5.1
982
979
  signing_key:
983
980
  specification_version: 4
984
981
  summary: The easiest way to automate building and releasing your iOS and Android apps
data/lib/assets/.DS_Store DELETED
Binary file
@@ -1,78 +0,0 @@
1
- # How it works:
2
- # You can run your functional calabash testcases on real ios hardware.
3
- # Follow the steps to set up your free account on testmunk.com or see below.
4
- # After tests are executed you will get an email with test results.
5
- # An API extension to see test results directly in Jenkins is in the works.
6
-
7
- # Setup
8
- # 1) Create a free account on testmunk.com
9
- # 2) Create an own project under your account (top right) after you are logged in. You will need to use this project name within your REST API upload path.
10
- # 3) Upload testcases (features in calabash) over the testmunk REST API (http://docs.testmunk.com/en/latest/rest.html#upload-testcases).
11
-
12
- module Fastlane
13
- module Actions
14
- class TestmunkAction < Action
15
- def self.run(config)
16
- UI.success('Testmunk: Uploading the .ipa and starting your tests')
17
-
18
- UI.success('Zipping features/ to features.zip')
19
- zipped_features_path = File.expand_path('features.zip')
20
- Actions.sh(%(zip -r "features" "features/"))
21
-
22
- response = system("curl -H 'Accept: application/vnd.testmunk.v1+json'" \
23
- " -F 'file=@#{config[:ipa]}' -F 'autoStart=true'" \
24
- " -F 'testcases=@#{zipped_features_path}'" \
25
- " -F 'email=#{config[:email]}'" \
26
- " https://#{config[:api]}@api.testmunk.com/apps/#{config[:app]}/testruns")
27
-
28
- if response
29
- UI.success('Your tests are being executed right now. Please wait for the mail with results and decide if you want to continue.')
30
- else
31
- UI.user_error!("Something went wrong while uploading your app to Testmunk")
32
- end
33
- end
34
-
35
- def self.description
36
- "Run tests on real devices using Testmunk"
37
- end
38
-
39
- def self.available_options
40
- [
41
- FastlaneCore::ConfigItem.new(key: :ipa,
42
- env_name: "TESTMUNK_IPA",
43
- description: "Path to IPA",
44
- default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH],
45
- verify_block: proc do |value|
46
- UI.user_error!("Please pass to existing ipa") unless File.exist? value
47
- end),
48
- FastlaneCore::ConfigItem.new(key: :email,
49
- env_name: "TESTMUNK_EMAIL",
50
- description: "Your email address",
51
- verify_block: proc do |value|
52
- UI.user_error!("Please pass your Testmunk email address using `ENV['TESTMUNK_EMAIL'] = 'value'`") unless value
53
- end),
54
- FastlaneCore::ConfigItem.new(key: :api,
55
- env_name: "TESTMUNK_API",
56
- description: "Testmunk API Key",
57
- verify_block: proc do |value|
58
- UI.user_error!("Please pass your Testmunk API Key using `ENV['TESTMUNK_API'] = 'value'`") unless value
59
- end),
60
- FastlaneCore::ConfigItem.new(key: :app,
61
- env_name: "TESTMUNK_APP",
62
- description: "Testmunk App Name",
63
- verify_block: proc do |value|
64
- UI.user_error!("Please pass your Testmunk app name using `ENV['TESTMUNK_APP'] = 'value'`") unless value
65
- end)
66
- ]
67
- end
68
-
69
- def self.author
70
- ["mposchen", "johannesberdin"]
71
- end
72
-
73
- def self.is_supported?(platform)
74
- platform == :ios
75
- end
76
- end
77
- end
78
- end
Binary file