fastlane 1.52.0 → 1.53.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -1
- data/bin/fastlane +2 -8
- data/lib/assets/custom_action_template.rb +1 -1
- data/lib/fastlane.rb +1 -0
- data/lib/fastlane/actions/actions_helper.rb +0 -2
- data/lib/fastlane/actions/git_add.rb +61 -0
- data/lib/fastlane/actions/hipchat.rb +10 -1
- data/lib/fastlane/actions/oclint.rb +79 -8
- data/lib/fastlane/actions/pod_push.rb +13 -1
- data/lib/fastlane/actions/resign.rb +6 -1
- data/lib/fastlane/actions/skip_docs.rb +34 -0
- data/lib/fastlane/actions/xcodebuild.rb +22 -0
- data/lib/fastlane/documentation/docs_generator.rb +6 -3
- data/lib/fastlane/lane_manager.rb +3 -0
- data/lib/fastlane/version.rb +1 -1
- metadata +13 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0663d0fdfbdbbea11fe7f00860f783cafe795d4
|
4
|
+
data.tar.gz: c09717b47e43e634ef18a25262f10bd3d6b26b2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27d76f4c2ac144eb8b11c780090d247a455939cf5027cb8a2c8ac402d87352ff28bda3b324abfb214d5d0ddbc71aead1ef3415483ef2d1dc17c70ef94f203465
|
7
|
+
data.tar.gz: 3a2c2cdfc62bac9c35945756c6877c28efd026edbeda3853702f0d14eb255b395b3a935ddfaa400ef3d50bdfbaf9f7a039ff2b462ae67182d4a7c36a5dd76ee7
|
data/README.md
CHANGED
@@ -144,7 +144,6 @@ Usually you'll use fastlane by triggering individual lanes:
|
|
144
144
|
- `fastlane action [action_name]`: Shows a more detailed description of an action
|
145
145
|
- `fastlane lanes`: Lists all available lanes with description
|
146
146
|
- `fastlane list`: Lists all available lanes without description
|
147
|
-
- `fastlane docs`: Generates a markdown based documentation of all your lanes
|
148
147
|
- `fastlane new_action`: Create a new action (integration) for fastlane
|
149
148
|
|
150
149
|
## Examples
|
@@ -187,6 +186,10 @@ Please submit an issue on GitHub and provide information about your setup
|
|
187
186
|
|
188
187
|
Thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving `fastlane`. Check out the project pages of the other tools for more sponsors and contributors.
|
189
188
|
|
189
|
+
## Code of Conduct
|
190
|
+
Help us keep fastlane open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/code-of-conduct).
|
191
|
+
|
192
|
+
|
190
193
|
## License
|
191
194
|
This project is licensed under the terms of the MIT license. See the LICENSE file.
|
192
195
|
|
data/bin/fastlane
CHANGED
@@ -90,15 +90,9 @@ class FastlaneApplication
|
|
90
90
|
c.option '-f', '--force', 'Overwrite the existing README.md in the ./fastlane folder'
|
91
91
|
|
92
92
|
c.action do |args, options|
|
93
|
-
path = File.join(Fastlane::FastlaneFolder.path || '.', 'README.md')
|
94
|
-
if File.exist? path and !options.force
|
95
|
-
return nil unless agree('Found existing ./fastlane/README.md. Do you want to overwrite it? (y/n)', true)
|
96
|
-
end
|
97
|
-
|
98
93
|
ff = Fastlane::FastFile.new(File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile'))
|
99
|
-
|
100
|
-
|
101
|
-
Fastlane::DocsGenerator.run(path, ff)
|
94
|
+
FastlaneCore::Helper.log.info "You don't need to run `fastlane docs` manually any more, this will be done automatically for you."
|
95
|
+
Fastlane::DocsGenerator.run(ff)
|
102
96
|
end
|
103
97
|
end
|
104
98
|
|
@@ -30,7 +30,7 @@ module Fastlane
|
|
30
30
|
|
31
31
|
def self.details
|
32
32
|
# Optional:
|
33
|
-
# this is your
|
33
|
+
# this is your chance to provide a more detailed description of this action
|
34
34
|
"You can use this action to do cool things..."
|
35
35
|
end
|
36
36
|
|
data/lib/fastlane.rb
CHANGED
@@ -0,0 +1,61 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class GitAddAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
if params[:path].kind_of?(String)
|
6
|
+
paths = "'#{params[:path]}'"
|
7
|
+
else
|
8
|
+
paths = params[:path].join(" ")
|
9
|
+
end
|
10
|
+
|
11
|
+
result = Actions.sh("git add #{paths}")
|
12
|
+
Helper.log.info "Successfully added \"#{params[:path]}\" 💾.".green
|
13
|
+
return result
|
14
|
+
end
|
15
|
+
|
16
|
+
#####################################################
|
17
|
+
# @!group Documentation
|
18
|
+
#####################################################
|
19
|
+
|
20
|
+
def self.description
|
21
|
+
"Directly add the given file"
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.details
|
25
|
+
""
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.available_options
|
29
|
+
[
|
30
|
+
FastlaneCore::ConfigItem.new(key: :path,
|
31
|
+
description: "The file you want to add",
|
32
|
+
is_string: false,
|
33
|
+
verify_block: proc do |value|
|
34
|
+
if value.kind_of?(String)
|
35
|
+
raise "Couldn't find file at path '#{value}'".red unless File.exist?(value)
|
36
|
+
else
|
37
|
+
value.each do |x|
|
38
|
+
raise "Couldn't find file at path '#{x}'".red unless File.exist?(x)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end)
|
42
|
+
]
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.output
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.return_value
|
49
|
+
nil
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.authors
|
53
|
+
["4brunu"]
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.is_supported?(platform)
|
57
|
+
true
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -15,7 +15,11 @@ module Fastlane
|
|
15
15
|
message_format = options[:message_format]
|
16
16
|
|
17
17
|
channel = options[:channel]
|
18
|
-
|
18
|
+
if ['yellow', 'red', 'green', 'purple', 'gray', 'random'].include?(options[:custom_color]) == true
|
19
|
+
color = options[:custom_color]
|
20
|
+
else
|
21
|
+
color = (options[:success] ? 'green' : 'red')
|
22
|
+
end
|
19
23
|
|
20
24
|
from = options[:from]
|
21
25
|
|
@@ -106,6 +110,11 @@ module Fastlane
|
|
106
110
|
raise 'No HIPCHAT_API_TOKEN given.'.red
|
107
111
|
end
|
108
112
|
end),
|
113
|
+
FastlaneCore::ConfigItem.new(key: :custom_color,
|
114
|
+
env_name: "FL_HIPCHAT_CUSTOM_COLOR",
|
115
|
+
description: "Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random'",
|
116
|
+
optional: true,
|
117
|
+
is_string: true),
|
109
118
|
FastlaneCore::ConfigItem.new(key: :success,
|
110
119
|
env_name: "FL_HIPCHAT_SUCCESS",
|
111
120
|
description: "Was this build successful? (true/false)",
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
1
2
|
module Fastlane
|
2
3
|
module Actions
|
3
4
|
module SharedValues
|
@@ -6,16 +7,24 @@ module Fastlane
|
|
6
7
|
|
7
8
|
class OclintAction < Action
|
8
9
|
def self.run(params)
|
9
|
-
select_reqex = params[:select_reqex]
|
10
|
-
|
11
10
|
compile_commands = params[:compile_commands]
|
12
11
|
raise "Could not find json compilation database at path '#{compile_commands}'".red unless File.exist?(compile_commands)
|
13
12
|
|
13
|
+
if params[:select_reqex]
|
14
|
+
Helper.log.warn "'select_reqex' paramter is deprecated. Please use 'select_regex' instead.".yellow
|
15
|
+
select_regex = params[:select_reqex]
|
16
|
+
end
|
17
|
+
|
18
|
+
select_regex = params[:select_regex] if params[:select_regex] # Overwrite deprecated select_reqex
|
19
|
+
exclude_regex = params[:exclude_regex]
|
20
|
+
|
14
21
|
files = JSON.parse(File.read(compile_commands)).map { |compile_command| compile_command['file'] }
|
15
22
|
files.uniq!
|
16
23
|
files.select! do |file|
|
17
24
|
file_ruby = file.gsub('\ ', ' ')
|
18
|
-
File.exist?(file_ruby) and
|
25
|
+
File.exist?(file_ruby) and
|
26
|
+
(!select_regex or file_ruby =~ select_regex) and
|
27
|
+
(!exclude_regex or !(file_ruby =~ exclude_regex))
|
19
28
|
end
|
20
29
|
|
21
30
|
command_prefix = [
|
@@ -28,11 +37,27 @@ module Fastlane
|
|
28
37
|
report_path = params[:report_path] ? params[:report_path] : 'oclint_report.' + report_type
|
29
38
|
|
30
39
|
oclint_args = ["-report-type=#{report_type}", "-o=#{report_path}"]
|
31
|
-
|
40
|
+
|
41
|
+
oclint_args << "-list-enabled-rules" if params[:list_enabled_rules]
|
42
|
+
|
43
|
+
if params[:rc]
|
44
|
+
Helper.log.warn "It's recommended to use 'thresholds' instead of deprecated 'rc' parameter".yellow
|
45
|
+
oclint_args << "-rc=#{params[:rc]}" if params[:rc] # Deprecated
|
46
|
+
end
|
47
|
+
|
48
|
+
oclint_args << params[:thresholds].map { |t| "-rc=#{t}" } if params[:thresholds]
|
49
|
+
# Escape ' in rule names with \' when passing on to shell command
|
50
|
+
oclint_args << params[:enable_rules].map { |r| "-rule #{r.shellescape}" } if params[:enable_rules]
|
51
|
+
oclint_args << params[:disable_rules].map { |r| "-disable-rule #{r.shellescape}" } if params[:disable_rules]
|
52
|
+
|
32
53
|
oclint_args << "-max-priority-1=#{params[:max_priority_1]}" if params[:max_priority_1]
|
33
54
|
oclint_args << "-max-priority-2=#{params[:max_priority_2]}" if params[:max_priority_2]
|
34
55
|
oclint_args << "-max-priority-3=#{params[:max_priority_3]}" if params[:max_priority_3]
|
35
56
|
|
57
|
+
oclint_args << "-enable-clang-static-analyzer" if params[:enable_clang_static_analyzer]
|
58
|
+
oclint_args << "-enable-global-analysis" if params[:enable_global_analysis]
|
59
|
+
oclint_args << "-allow-duplicated-violations" if params[:allow_duplicated_violations]
|
60
|
+
|
36
61
|
command = [
|
37
62
|
command_prefix,
|
38
63
|
'oclint',
|
@@ -40,9 +65,9 @@ module Fastlane
|
|
40
65
|
'"' + files.join('" "') + '"'
|
41
66
|
].join(' ')
|
42
67
|
|
43
|
-
Action.sh command
|
44
|
-
|
45
68
|
Actions.lane_context[SharedValues::FL_OCLINT_REPORT_PATH] = File.expand_path(report_path)
|
69
|
+
|
70
|
+
return Action.sh(command)
|
46
71
|
end
|
47
72
|
|
48
73
|
#####################################################
|
@@ -60,11 +85,21 @@ module Fastlane
|
|
60
85
|
description: 'The json compilation database, use xctool reporter \'json-compilation-database\'',
|
61
86
|
default_value: 'compile_commands.json',
|
62
87
|
optional: true),
|
63
|
-
FastlaneCore::ConfigItem.new(key: :select_reqex,
|
88
|
+
FastlaneCore::ConfigItem.new(key: :select_reqex, # select_reqex is deprecated, remove as soon as possible
|
64
89
|
env_name: 'FL_OCLINT_SELECT_REQEX',
|
65
90
|
description: 'Select all files matching this reqex',
|
66
91
|
is_string: false,
|
67
92
|
optional: true),
|
93
|
+
FastlaneCore::ConfigItem.new(key: :select_regex,
|
94
|
+
env_name: 'FL_OCLINT_SELECT_REGEX',
|
95
|
+
description: 'Select all files matching this regex',
|
96
|
+
is_string: false,
|
97
|
+
optional: true),
|
98
|
+
FastlaneCore::ConfigItem.new(key: :exclude_regex,
|
99
|
+
env_name: 'FL_OCLINT_EXCLUDE_REGEX',
|
100
|
+
description: 'Exclude all files matching this regex',
|
101
|
+
is_string: false,
|
102
|
+
optional: true),
|
68
103
|
FastlaneCore::ConfigItem.new(key: :report_type,
|
69
104
|
env_name: 'FL_OCLINT_REPORT_TYPE',
|
70
105
|
description: 'The type of the report (default: html)',
|
@@ -74,10 +109,30 @@ module Fastlane
|
|
74
109
|
env_name: 'FL_OCLINT_REPORT_PATH',
|
75
110
|
description: 'The reports file path',
|
76
111
|
optional: true),
|
112
|
+
FastlaneCore::ConfigItem.new(key: :list_enabled_rules,
|
113
|
+
env_name: "FL_OCLINT_LIST_ENABLED_RULES",
|
114
|
+
description: "List enabled rules",
|
115
|
+
is_string: false,
|
116
|
+
default_value: false),
|
77
117
|
FastlaneCore::ConfigItem.new(key: :rc,
|
78
118
|
env_name: 'FL_OCLINT_RC',
|
79
119
|
description: 'Override the default behavior of rules',
|
80
120
|
optional: true),
|
121
|
+
FastlaneCore::ConfigItem.new(key: :thresholds,
|
122
|
+
env_name: 'FL_OCLINT_THRESHOLDS',
|
123
|
+
description: 'List of rule thresholds to override the default behavior of rules',
|
124
|
+
is_string: false,
|
125
|
+
optional: true),
|
126
|
+
FastlaneCore::ConfigItem.new(key: :enable_rules,
|
127
|
+
env_name: 'FL_OCLINT_ENABLE_RULES',
|
128
|
+
description: 'List of rules to pick explicitly',
|
129
|
+
is_string: false,
|
130
|
+
optional: true),
|
131
|
+
FastlaneCore::ConfigItem.new(key: :disable_rules,
|
132
|
+
env_name: 'FL_OCLINT_DISABLE_RULES',
|
133
|
+
description: 'List of rules to disable',
|
134
|
+
is_string: false,
|
135
|
+
optional: true),
|
81
136
|
FastlaneCore::ConfigItem.new(key: :max_priority_1,
|
82
137
|
env_name: 'FL_OCLINT_MAX_PRIOTITY_1',
|
83
138
|
description: 'The max allowed number of priority 1 violations',
|
@@ -92,7 +147,22 @@ module Fastlane
|
|
92
147
|
env_name: 'FL_OCLINT_MAX_PRIOTITY_3',
|
93
148
|
description: 'The max allowed number of priority 3 violations',
|
94
149
|
is_string: false,
|
95
|
-
optional: true)
|
150
|
+
optional: true),
|
151
|
+
FastlaneCore::ConfigItem.new(key: :enable_clang_static_analyzer,
|
152
|
+
env_name: "FL_OCLINT_ENABLE_CLANG_STATIC_ANALYZER",
|
153
|
+
description: "Enable Clang Static Analyzer, and integrate results into OCLint report",
|
154
|
+
is_string: false,
|
155
|
+
default_value: false),
|
156
|
+
FastlaneCore::ConfigItem.new(key: :enable_global_analysis,
|
157
|
+
env_name: "FL_OCLINT_ENABLE_GLOBAL_ANALYSIS",
|
158
|
+
description: "Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load)",
|
159
|
+
is_string: false,
|
160
|
+
default_value: false),
|
161
|
+
FastlaneCore::ConfigItem.new(key: :allow_duplicated_violations,
|
162
|
+
env_name: "FL_OCLINT_ALLOW_DUPLICATED_VIOLATIONS",
|
163
|
+
description: "Allow duplicated violations in the OCLint report",
|
164
|
+
is_string: false,
|
165
|
+
default_value: false)
|
96
166
|
]
|
97
167
|
end
|
98
168
|
|
@@ -112,3 +182,4 @@ module Fastlane
|
|
112
182
|
end
|
113
183
|
end
|
114
184
|
end
|
185
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
@@ -13,6 +13,11 @@ module Fastlane
|
|
13
13
|
command << " '#{params[:path]}'"
|
14
14
|
end
|
15
15
|
|
16
|
+
if params[:sources]
|
17
|
+
sources = params[:sources].join(",")
|
18
|
+
command << " --sources='#{sources}'"
|
19
|
+
end
|
20
|
+
|
16
21
|
result = Actions.sh("#{command}")
|
17
22
|
Helper.log.info "Successfully pushed Podspec ⬆️ ".green
|
18
23
|
return result
|
@@ -41,7 +46,14 @@ module Fastlane
|
|
41
46
|
end),
|
42
47
|
FastlaneCore::ConfigItem.new(key: :repo,
|
43
48
|
description: "The repo you want to push. Pushes to Trunk by default",
|
44
|
-
optional: true)
|
49
|
+
optional: true),
|
50
|
+
FastlaneCore::ConfigItem.new(key: :sources,
|
51
|
+
description: "The sources of repos you want the pod spec to lint with, separated by commas",
|
52
|
+
optional: true,
|
53
|
+
is_string: false,
|
54
|
+
verify_block: proc do |value|
|
55
|
+
raise "Sources must be an array.".red unless value.kind_of?(Array)
|
56
|
+
end)
|
45
57
|
]
|
46
58
|
end
|
47
59
|
|
@@ -6,7 +6,7 @@ module Fastlane
|
|
6
6
|
require 'sigh'
|
7
7
|
|
8
8
|
# try to resign the ipa
|
9
|
-
if Sigh::Resign.resign(params[:ipa], params[:signing_identity], params[:provisioning_profile])
|
9
|
+
if Sigh::Resign.resign(params[:ipa], params[:signing_identity], params[:provisioning_profile], params[:entitlements])
|
10
10
|
Helper.log.info 'Successfully re-signed .ipa 🔏.'.green
|
11
11
|
else
|
12
12
|
raise 'Failed to re-sign .ipa'.red
|
@@ -43,6 +43,11 @@ module Fastlane
|
|
43
43
|
FastlaneCore::ConfigItem.new(key: :signing_identity,
|
44
44
|
env_name: "FL_RESIGN_SIGNING_IDENTITY",
|
45
45
|
description: "Code signing identity to use. e.g. \"iPhone Distribution: Luka Mirosevic (0123456789)\""),
|
46
|
+
FastlaneCore::ConfigItem.new(key: :entitlements,
|
47
|
+
env_name: "FL_RESIGN_ENTITLEMENTS",
|
48
|
+
description: "Path to the entitlement file to use, e.g. \"myApp/MyApp.entitlements\"",
|
49
|
+
is_string: true,
|
50
|
+
optional: true),
|
46
51
|
FastlaneCore::ConfigItem.new(key: :provisioning_profile,
|
47
52
|
env_name: "FL_RESIGN_PROVISIONING_PROFILE",
|
48
53
|
description: "Path to your provisioning_profile. Optional if you use `sigh`",
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class SkipDocsAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
ENV["FASTLANE_SKIP_DOCS"] = "1"
|
6
|
+
end
|
7
|
+
|
8
|
+
#####################################################
|
9
|
+
# @!group Documentation
|
10
|
+
#####################################################
|
11
|
+
|
12
|
+
def self.description
|
13
|
+
"Skip the creation of the fastlane/README.md file when running fastlane"
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.available_options
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.output
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.return_value
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.authors
|
26
|
+
["KrauseFx"]
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.is_supported?(platform)
|
30
|
+
true
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -132,6 +132,7 @@ module Fastlane
|
|
132
132
|
end
|
133
133
|
|
134
134
|
# Maps parameter hash to CLI args
|
135
|
+
params = export_options_to_plist(params)
|
135
136
|
if hash_args = hash_to_args(params)
|
136
137
|
xcodebuild_args += hash_args
|
137
138
|
end
|
@@ -266,6 +267,27 @@ module Fastlane
|
|
266
267
|
output_result
|
267
268
|
end
|
268
269
|
|
270
|
+
def self.export_options_to_plist(hash)
|
271
|
+
# Extract export options parameters from input options
|
272
|
+
if hash.has_key?(:export_options_plist) && hash[:export_options_plist].is_a?(Hash)
|
273
|
+
export_options = hash[:export_options_plist]
|
274
|
+
|
275
|
+
# Normalize some values
|
276
|
+
export_options[:teamID] = CredentialsManager::AppfileConfig.try_fetch_value(:team_id) if !export_options[:teamID] && CredentialsManager::AppfileConfig.try_fetch_value(:team_id)
|
277
|
+
export_options[:onDemandResourcesAssetPacksBaseURL] = URI.escape(export_options[:onDemandResourcesAssetPacksBaseURL]) if export_options[:onDemandResourcesAssetPacksBaseURL]
|
278
|
+
export_options[:manifest][:appURL] = URI.escape(export_options[:manifest][:appURL]) if export_options[:manifest][:appURL]
|
279
|
+
export_options[:manifest][:displayImageURL] = URI.escape(export_options[:manifest][:displayImageURL]) if export_options[:manifest][:displayImageURL]
|
280
|
+
export_options[:manifest][:fullSizeImageURL] = URI.escape(export_options[:manifest][:fullSizeImageURL]) if export_options[:manifest][:fullSizeImageURL]
|
281
|
+
export_options[:manifest][:assetPackManifestURL] = URI.escape(export_options[:manifest][:assetPackManifestURL]) if export_options[:manifest][:assetPackManifestURL]
|
282
|
+
|
283
|
+
# Saves options to plist
|
284
|
+
path = "#{Tempfile.new('exportOptions').path}.plist"
|
285
|
+
File.write(path, export_options.to_plist)
|
286
|
+
hash[:export_options_plist] = path
|
287
|
+
end
|
288
|
+
hash
|
289
|
+
end
|
290
|
+
|
269
291
|
def self.hash_to_args(hash)
|
270
292
|
# Remove nil value params
|
271
293
|
hash = hash.delete_if { |_, v| v.nil? }
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Fastlane
|
2
2
|
class DocsGenerator
|
3
|
-
def self.run(
|
3
|
+
def self.run(ff, output_path = nil)
|
4
|
+
output_path ||= File.join(Fastlane::FastlaneFolder.path || '.', 'README.md')
|
5
|
+
|
4
6
|
output = ["fastlane documentation"]
|
5
7
|
output << "================"
|
6
8
|
|
@@ -30,12 +32,12 @@ module Fastlane
|
|
30
32
|
output << ""
|
31
33
|
end
|
32
34
|
|
33
|
-
output << "
|
35
|
+
output << "This README.md is auto-generated and will be re-generated every time to run [fastlane](https://fastlane.tools)"
|
34
36
|
output << "More information about fastlane can be found on [https://fastlane.tools](https://fastlane.tools)."
|
35
37
|
output << "The documentation of fastlane can be found on [GitHub](https://github.com/fastlane/fastlane)"
|
36
38
|
|
37
39
|
File.write(output_path, output.join("\n"))
|
38
|
-
Helper.log.info "Successfully generated documentation to path '#{File.expand_path(output_path)}'".green
|
40
|
+
Helper.log.info "Successfully generated documentation to path '#{File.expand_path(output_path)}'".green if $verbose
|
39
41
|
end
|
40
42
|
|
41
43
|
#####################################################
|
@@ -46,6 +48,7 @@ module Fastlane
|
|
46
48
|
pl = pl.to_s
|
47
49
|
return "iOS" if pl == 'ios'
|
48
50
|
return "Mac" if pl == 'mac'
|
51
|
+
return "Android" if pl == 'android'
|
49
52
|
|
50
53
|
return pl
|
51
54
|
end
|
@@ -51,6 +51,9 @@ module Fastlane
|
|
51
51
|
e = ex
|
52
52
|
end
|
53
53
|
|
54
|
+
# After running the lanes, since skip_docs might be somewhere in-between
|
55
|
+
Fastlane::DocsGenerator.run(ff) unless ENV["FASTLANE_SKIP_DOCS"]
|
56
|
+
|
54
57
|
duration = ((Time.now - started) / 60.0).round
|
55
58
|
|
56
59
|
finish_fastlane(ff, duration, e)
|
data/lib/fastlane/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.53.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: krausefx-shenzhen
|
@@ -148,7 +148,7 @@ dependencies:
|
|
148
148
|
requirements:
|
149
149
|
- - ">="
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: 0.35.
|
151
|
+
version: 0.35.1
|
152
152
|
- - "<"
|
153
153
|
- !ruby/object:Gem::Version
|
154
154
|
version: 1.0.0
|
@@ -158,7 +158,7 @@ dependencies:
|
|
158
158
|
requirements:
|
159
159
|
- - ">="
|
160
160
|
- !ruby/object:Gem::Version
|
161
|
-
version: 0.35.
|
161
|
+
version: 0.35.1
|
162
162
|
- - "<"
|
163
163
|
- !ruby/object:Gem::Version
|
164
164
|
version: 1.0.0
|
@@ -188,7 +188,7 @@ dependencies:
|
|
188
188
|
requirements:
|
189
189
|
- - ">="
|
190
190
|
- !ruby/object:Gem::Version
|
191
|
-
version: 0.19.
|
191
|
+
version: 0.19.3
|
192
192
|
- - "<"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 1.0.0
|
@@ -198,7 +198,7 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - ">="
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 0.19.
|
201
|
+
version: 0.19.3
|
202
202
|
- - "<"
|
203
203
|
- !ruby/object:Gem::Version
|
204
204
|
version: 1.0.0
|
@@ -208,7 +208,7 @@ dependencies:
|
|
208
208
|
requirements:
|
209
209
|
- - ">="
|
210
210
|
- !ruby/object:Gem::Version
|
211
|
-
version: 1.8.
|
211
|
+
version: 1.8.1
|
212
212
|
- - "<"
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: 2.0.0
|
@@ -218,7 +218,7 @@ dependencies:
|
|
218
218
|
requirements:
|
219
219
|
- - ">="
|
220
220
|
- !ruby/object:Gem::Version
|
221
|
-
version: 1.8.
|
221
|
+
version: 1.8.1
|
222
222
|
- - "<"
|
223
223
|
- !ruby/object:Gem::Version
|
224
224
|
version: 2.0.0
|
@@ -308,7 +308,7 @@ dependencies:
|
|
308
308
|
requirements:
|
309
309
|
- - ">="
|
310
310
|
- !ruby/object:Gem::Version
|
311
|
-
version: 1.
|
311
|
+
version: 1.3.0
|
312
312
|
- - "<"
|
313
313
|
- !ruby/object:Gem::Version
|
314
314
|
version: 2.0.0
|
@@ -318,7 +318,7 @@ dependencies:
|
|
318
318
|
requirements:
|
319
319
|
- - ">="
|
320
320
|
- !ruby/object:Gem::Version
|
321
|
-
version: 1.
|
321
|
+
version: 1.3.0
|
322
322
|
- - "<"
|
323
323
|
- !ruby/object:Gem::Version
|
324
324
|
version: 2.0.0
|
@@ -639,6 +639,7 @@ files:
|
|
639
639
|
- lib/fastlane/actions/get_info_plist_value.rb
|
640
640
|
- lib/fastlane/actions/get_ipa_info_plist_value.rb
|
641
641
|
- lib/fastlane/actions/get_version_number.rb
|
642
|
+
- lib/fastlane/actions/git_add.rb
|
642
643
|
- lib/fastlane/actions/git_branch.rb
|
643
644
|
- lib/fastlane/actions/git_commit.rb
|
644
645
|
- lib/fastlane/actions/git_pull.rb
|
@@ -696,6 +697,7 @@ files:
|
|
696
697
|
- lib/fastlane/actions/set_github_release.rb
|
697
698
|
- lib/fastlane/actions/set_info_plist_value.rb
|
698
699
|
- lib/fastlane/actions/sigh.rb
|
700
|
+
- lib/fastlane/actions/skip_docs.rb
|
699
701
|
- lib/fastlane/actions/slack.rb
|
700
702
|
- lib/fastlane/actions/slather.rb
|
701
703
|
- lib/fastlane/actions/snapshot.rb
|
@@ -777,7 +779,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
777
779
|
version: '0'
|
778
780
|
requirements: []
|
779
781
|
rubyforge_project:
|
780
|
-
rubygems_version: 2.4.
|
782
|
+
rubygems_version: 2.4.6
|
781
783
|
signing_key:
|
782
784
|
specification_version: 4
|
783
785
|
summary: Connect all iOS deployment tools into one streamlined workflow
|