fastlane 1.102.0 → 1.103.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/.DS_Store +0 -0
- data/lib/assets/custom_action_template.rb +0 -6
- data/lib/fastlane/.DS_Store +0 -0
- data/lib/{assets/completions → fastlane/actions}/.DS_Store +0 -0
- data/lib/fastlane/actions/badge.rb +1 -1
- data/lib/fastlane/actions/carthage.rb +5 -0
- data/lib/fastlane/actions/cocoapods.rb +1 -1
- data/lib/fastlane/actions/gym.rb +7 -2
- data/lib/fastlane/actions/install_on_device.rb +1 -1
- data/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
- data/lib/fastlane/actions/pod_lib_lint.rb +1 -1
- data/lib/fastlane/actions/pod_push.rb +1 -1
- data/lib/fastlane/actions/read_podspec.rb +1 -1
- data/lib/fastlane/actions/resign.rb +3 -3
- data/lib/fastlane/actions/s3.rb +7 -1
- data/lib/fastlane/actions/update_info_plist.rb +1 -1
- data/lib/fastlane/actions/verify_pod_keys.rb +1 -1
- data/lib/fastlane/actions/version_bump_podspec.rb +1 -1
- data/lib/fastlane/actions/version_get_podspec.rb +1 -1
- data/lib/fastlane/actions/xcode_select.rb +1 -1
- data/lib/fastlane/actions/xcode_server_get_assets.rb +1 -1
- data/lib/fastlane/cli_tools_distributor.rb +2 -1
- data/lib/fastlane/documentation/docs_generator.rb +1 -0
- data/lib/fastlane/fast_file.rb +1 -1
- data/lib/fastlane/new_action.rb +2 -2
- data/lib/fastlane/plugins/plugin_fetcher.rb +15 -8
- data/lib/fastlane/runner.rb +17 -5
- data/lib/fastlane/setup/setup_android.rb +2 -2
- data/lib/fastlane/setup/setup_ios.rb +4 -4
- data/lib/fastlane/version.rb +1 -1
- metadata +10 -13
- data/lib/assets/.DS_Store +0 -0
- data/lib/fastlane/actions/testmunk.rb +0 -78
- data/lib/fastlane/setup/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1aa696e2b0d7865863f82d76107e06a91d81ed6c
|
4
|
+
data.tar.gz: a7a542ac13d7639b678bb8dcc5d5bbd5ac22d607
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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:
|
data/lib/fastlane/.DS_Store
CHANGED
Binary file
|
Binary file
|
@@ -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: "
|
53
|
+
description: "Execute command without logging output",
|
54
54
|
is_string: false,
|
55
55
|
default_value: false),
|
56
56
|
FastlaneCore::ConfigItem.new(key: :verbose,
|
data/lib/fastlane/actions/gym.rb
CHANGED
@@ -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
|
-
|
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
|
@@ -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["
|
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: "
|
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)
|
@@ -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
|
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 (
|
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,
|
data/lib/fastlane/actions/s3.rb
CHANGED
@@ -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
|
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 '#{
|
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
|
@@ -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.
|
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)
|
@@ -60,7 +60,8 @@ module Fastlane
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def print_slow_fastlane_warning
|
63
|
-
|
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
|
data/lib/fastlane/fast_file.rb
CHANGED
@@ -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)
|
data/lib/fastlane/new_action.rb
CHANGED
@@ -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 =
|
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 =
|
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
|
-
|
16
|
-
|
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
|
data/lib/fastlane/runner.rb
CHANGED
@@ -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 =
|
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?(
|
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 =
|
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 =
|
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 ||=
|
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 =
|
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] =
|
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 =
|
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
|
data/lib/fastlane/version.rb
CHANGED
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|