fastlane 2.200.0 → 2.201.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +100 -93
- data/fastlane/lib/fastlane/actions/trainer.rb +49 -0
- data/fastlane/lib/fastlane/helper/xcodebuild_formatter_helper.rb +9 -0
- data/fastlane/lib/fastlane/tools.rb +2 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +134 -43
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +10 -6
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +18 -6
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +9 -5
- data/fastlane/swift/formatting/Brewfile.lock.json +13 -13
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +7 -0
- data/gym/lib/gym/generators/build_command_generator.rb +67 -21
- data/gym/lib/gym/options.rb +17 -5
- data/scan/lib/scan/options.rb +30 -5
- data/scan/lib/scan/runner.rb +121 -14
- data/scan/lib/scan/test_command_generator.rb +55 -5
- data/snapshot/lib/snapshot/options.rb +23 -7
- data/snapshot/lib/snapshot/test_command_generator.rb +37 -2
- data/trainer/lib/assets/junit.xml.erb +20 -0
- data/trainer/lib/trainer/commands_generator.rb +51 -0
- data/trainer/lib/trainer/junit_generator.rb +31 -0
- data/trainer/lib/trainer/module.rb +10 -0
- data/trainer/lib/trainer/options.rb +55 -0
- data/trainer/lib/trainer/test_parser.rb +376 -0
- data/trainer/lib/trainer/xcresult.rb +403 -0
- data/trainer/lib/trainer.rb +7 -0
- metadata +29 -18
@@ -104,7 +104,10 @@ public protocol GymfileProtocol: class {
|
|
104
104
|
/// Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
|
105
105
|
var suppressXcodeOutput: Bool? { get }
|
106
106
|
|
107
|
-
///
|
107
|
+
/// xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)
|
108
|
+
var xcodebuildFormatter: String { get }
|
109
|
+
|
110
|
+
/// **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
|
108
111
|
var disableXcpretty: Bool? { get }
|
109
112
|
|
110
113
|
/// Use the test (RSpec style) format for build output
|
@@ -122,12 +125,12 @@ public protocol GymfileProtocol: class {
|
|
122
125
|
/// Have xcpretty create a JSON compilation database at the provided path
|
123
126
|
var xcprettyReportJson: String? { get }
|
124
127
|
|
125
|
-
/// Analyze the project build time and store the output in 'culprits.txt' file
|
126
|
-
var analyzeBuildTime: Bool? { get }
|
127
|
-
|
128
128
|
/// Have xcpretty use unicode encoding when reporting builds
|
129
129
|
var xcprettyUtf: Bool? { get }
|
130
130
|
|
131
|
+
/// Analyze the project build time and store the output in 'culprits.txt' file
|
132
|
+
var analyzeBuildTime: Bool? { get }
|
133
|
+
|
131
134
|
/// Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
132
135
|
var skipProfileDetection: Bool { get }
|
133
136
|
|
@@ -182,14 +185,15 @@ public extension GymfileProtocol {
|
|
182
185
|
var xcargs: String? { return nil }
|
183
186
|
var xcconfig: String? { return nil }
|
184
187
|
var suppressXcodeOutput: Bool? { return nil }
|
188
|
+
var xcodebuildFormatter: String { return "xcbeautify" }
|
185
189
|
var disableXcpretty: Bool? { return nil }
|
186
190
|
var xcprettyTestFormat: Bool? { return nil }
|
187
191
|
var xcprettyFormatter: String? { return nil }
|
188
192
|
var xcprettyReportJunit: String? { return nil }
|
189
193
|
var xcprettyReportHtml: String? { return nil }
|
190
194
|
var xcprettyReportJson: String? { return nil }
|
191
|
-
var analyzeBuildTime: Bool? { return nil }
|
192
195
|
var xcprettyUtf: Bool? { return nil }
|
196
|
+
var analyzeBuildTime: Bool? { return nil }
|
193
197
|
var skipProfileDetection: Bool { return false }
|
194
198
|
var xcodebuildCommand: String { return "xcodebuild" }
|
195
199
|
var clonedSourcePackagesPath: String? { return nil }
|
@@ -200,4 +204,4 @@ public extension GymfileProtocol {
|
|
200
204
|
|
201
205
|
// Please don't remove the lines below
|
202
206
|
// They are used to detect outdated files
|
203
|
-
// FastlaneRunnerAPIVersion [0.9.
|
207
|
+
// FastlaneRunnerAPIVersion [0.9.94]
|
@@ -80,9 +80,6 @@ public protocol ScanfileProtocol: class {
|
|
80
80
|
/// Should the HTML report be opened when tests are completed?
|
81
81
|
var openReport: Bool { get }
|
82
82
|
|
83
|
-
/// Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
|
84
|
-
var disableXcpretty: Bool? { get }
|
85
|
-
|
86
83
|
/// The directory in which all reports will be stored
|
87
84
|
var outputDirectory: String { get }
|
88
85
|
|
@@ -104,9 +101,21 @@ public protocol ScanfileProtocol: class {
|
|
104
101
|
/// Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
|
105
102
|
var suppressXcodeOutput: Bool? { get }
|
106
103
|
|
107
|
-
///
|
104
|
+
/// xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)
|
105
|
+
var xcodebuildFormatter: String { get }
|
106
|
+
|
107
|
+
/// Remove retry attempts from test results table and the JUnit report (if not using xcpretty)
|
108
|
+
var outputRemoveRetryAttempts: Bool { get }
|
109
|
+
|
110
|
+
/// **DEPRECATED!** Use `output_style: 'raw'` instead - Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
|
111
|
+
var disableXcpretty: Bool? { get }
|
112
|
+
|
113
|
+
/// **DEPRECATED!** Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use
|
108
114
|
var formatter: String? { get }
|
109
115
|
|
116
|
+
/// A custom xcpretty formatter to use
|
117
|
+
var xcprettyFormatter: String? { get }
|
118
|
+
|
110
119
|
/// Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf')
|
111
120
|
var xcprettyArgs: String? { get }
|
112
121
|
|
@@ -246,7 +255,6 @@ public extension ScanfileProtocol {
|
|
246
255
|
var addressSanitizer: Bool? { return nil }
|
247
256
|
var threadSanitizer: Bool? { return nil }
|
248
257
|
var openReport: Bool { return false }
|
249
|
-
var disableXcpretty: Bool? { return nil }
|
250
258
|
var outputDirectory: String { return "./test_output" }
|
251
259
|
var outputStyle: String? { return nil }
|
252
260
|
var outputTypes: String { return "html,junit" }
|
@@ -254,7 +262,11 @@ public extension ScanfileProtocol {
|
|
254
262
|
var buildlogPath: String { return "~/Library/Logs/scan" }
|
255
263
|
var includeSimulatorLogs: Bool { return false }
|
256
264
|
var suppressXcodeOutput: Bool? { return nil }
|
265
|
+
var xcodebuildFormatter: String { return "xcbeautify" }
|
266
|
+
var outputRemoveRetryAttempts: Bool { return false }
|
267
|
+
var disableXcpretty: Bool? { return nil }
|
257
268
|
var formatter: String? { return nil }
|
269
|
+
var xcprettyFormatter: String? { return nil }
|
258
270
|
var xcprettyArgs: String? { return nil }
|
259
271
|
var derivedDataPath: String? { return nil }
|
260
272
|
var shouldZipBuildProducts: Bool { return false }
|
@@ -296,4 +308,4 @@ public extension ScanfileProtocol {
|
|
296
308
|
|
297
309
|
// Please don't remove the lines below
|
298
310
|
// They are used to detect outdated files
|
299
|
-
// FastlaneRunnerAPIVersion [0.9.
|
311
|
+
// FastlaneRunnerAPIVersion [0.9.99]
|
@@ -86,9 +86,6 @@ public protocol SnapshotfileProtocol: class {
|
|
86
86
|
/// The configuration to use when building the app. Defaults to 'Release'
|
87
87
|
var configuration: String? { get }
|
88
88
|
|
89
|
-
/// Additional xcpretty arguments
|
90
|
-
var xcprettyArgs: String? { get }
|
91
|
-
|
92
89
|
/// The SDK that should be used for building the application
|
93
90
|
var sdk: String? { get }
|
94
91
|
|
@@ -137,6 +134,12 @@ public protocol SnapshotfileProtocol: class {
|
|
137
134
|
/// Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
138
135
|
var skipTesting: String? { get }
|
139
136
|
|
137
|
+
/// xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)
|
138
|
+
var xcodebuildFormatter: String { get }
|
139
|
+
|
140
|
+
/// **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Additional xcpretty arguments
|
141
|
+
var xcprettyArgs: String? { get }
|
142
|
+
|
140
143
|
/// Disable xcpretty formatting of build
|
141
144
|
var disableXcpretty: Bool? { get }
|
142
145
|
|
@@ -176,7 +179,6 @@ public extension SnapshotfileProtocol {
|
|
176
179
|
var clean: Bool { return false }
|
177
180
|
var testWithoutBuilding: Bool? { return nil }
|
178
181
|
var configuration: String? { return nil }
|
179
|
-
var xcprettyArgs: String? { return nil }
|
180
182
|
var sdk: String? { return nil }
|
181
183
|
var scheme: String? { return nil }
|
182
184
|
var numberOfRetries: Int { return 1 }
|
@@ -193,6 +195,8 @@ public extension SnapshotfileProtocol {
|
|
193
195
|
var testplan: String? { return nil }
|
194
196
|
var onlyTesting: String? { return nil }
|
195
197
|
var skipTesting: String? { return nil }
|
198
|
+
var xcodebuildFormatter: String { return "xcbeautify" }
|
199
|
+
var xcprettyArgs: String? { return nil }
|
196
200
|
var disableXcpretty: Bool? { return nil }
|
197
201
|
var suppressXcodeOutput: Bool? { return nil }
|
198
202
|
var useSystemScm: Bool { return false }
|
@@ -200,4 +204,4 @@ public extension SnapshotfileProtocol {
|
|
200
204
|
|
201
205
|
// Please don't remove the lines below
|
202
206
|
// They are used to detect outdated files
|
203
|
-
// FastlaneRunnerAPIVersion [0.9.
|
207
|
+
// FastlaneRunnerAPIVersion [0.9.83]
|
@@ -2,35 +2,35 @@
|
|
2
2
|
"entries": {
|
3
3
|
"brew": {
|
4
4
|
"swiftformat": {
|
5
|
-
"version": "0.49.
|
5
|
+
"version": "0.49.2",
|
6
6
|
"bottle": {
|
7
7
|
"rebuild": 0,
|
8
8
|
"root_url": "https://ghcr.io/v2/homebrew/core",
|
9
9
|
"files": {
|
10
10
|
"arm64_monterey": {
|
11
11
|
"cellar": ":any_skip_relocation",
|
12
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
13
|
-
"sha256": "
|
12
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:2279db95259ddbc7ad83e47f5bbf8c308db55b74d5464ac79a027bd33138b023",
|
13
|
+
"sha256": "2279db95259ddbc7ad83e47f5bbf8c308db55b74d5464ac79a027bd33138b023"
|
14
14
|
},
|
15
15
|
"arm64_big_sur": {
|
16
16
|
"cellar": ":any_skip_relocation",
|
17
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
18
|
-
"sha256": "
|
17
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:2f6bddbef7d750d6ed546ed5decd4d54d439f16009491bdb4e4999c99d877bcf",
|
18
|
+
"sha256": "2f6bddbef7d750d6ed546ed5decd4d54d439f16009491bdb4e4999c99d877bcf"
|
19
19
|
},
|
20
20
|
"monterey": {
|
21
21
|
"cellar": ":any_skip_relocation",
|
22
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
23
|
-
"sha256": "
|
22
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:190bf822a188ec8e8be754de2fcd34166ffb07bbd40d67385653d898a251b167",
|
23
|
+
"sha256": "190bf822a188ec8e8be754de2fcd34166ffb07bbd40d67385653d898a251b167"
|
24
24
|
},
|
25
25
|
"big_sur": {
|
26
26
|
"cellar": ":any_skip_relocation",
|
27
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
28
|
-
"sha256": "
|
27
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:fe294ff0fa69548876a70ef7aaf30b7221a43adc9f75f7c157c6f881089da6eb",
|
28
|
+
"sha256": "fe294ff0fa69548876a70ef7aaf30b7221a43adc9f75f7c157c6f881089da6eb"
|
29
29
|
},
|
30
30
|
"catalina": {
|
31
31
|
"cellar": ":any_skip_relocation",
|
32
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
33
|
-
"sha256": "
|
32
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:2a174bf9c47a070b1fcaa32c066cd7c82604fc428db952f11c9bf1e4448c567a",
|
33
|
+
"sha256": "2a174bf9c47a070b1fcaa32c066cd7c82604fc428db952f11c9bf1e4448c567a"
|
34
34
|
}
|
35
35
|
}
|
36
36
|
}
|
@@ -56,9 +56,9 @@
|
|
56
56
|
"macOS": "11.6"
|
57
57
|
},
|
58
58
|
"monterey": {
|
59
|
-
"HOMEBREW_VERSION": "3.3.
|
59
|
+
"HOMEBREW_VERSION": "3.3.11-80-g5ee14b9",
|
60
60
|
"HOMEBREW_PREFIX": "/opt/homebrew",
|
61
|
-
"Homebrew/homebrew-core": "
|
61
|
+
"Homebrew/homebrew-core": "9ca1b8fa2865504f50fcdbe679417daedfa274cc",
|
62
62
|
"CLT": "13.1.0.0.1.1633545042",
|
63
63
|
"Xcode": "13.2.1",
|
64
64
|
"macOS": "12.0.1"
|
@@ -114,6 +114,13 @@ module Commander
|
|
114
114
|
action_launch_context = FastlaneCore::ActionLaunchContext.context_for_action_name(@program[:name], fastlane_client_language: fastlane_client_language, args: ARGV)
|
115
115
|
FastlaneCore.session.action_launched(launch_context: action_launch_context)
|
116
116
|
|
117
|
+
# Trainer has been added to fastlane as of 2.201.0
|
118
|
+
# We need to make sure that the trainer fastlane plugin is no longer installed
|
119
|
+
# to avoid any clashes
|
120
|
+
if Gem::Specification.any? { |s| (s.name == 'fastlane-plugin-trainer') && Gem::Requirement.default =~ (s.version) }
|
121
|
+
FastlaneCore::UI.user_error!("Migration Needed: As of 2.201.0, trainer is included in fastlane. Please remove the trainer plugin from your Gemfile or Pluginfile (or with 'gem uninstall fastlane-plugin-trainer') - More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/")
|
122
|
+
end
|
123
|
+
|
117
124
|
return_value = run_active_command
|
118
125
|
|
119
126
|
action_completed(@program[:name], status: FastlaneCore::ActionCompletionStatus::SUCCESS)
|
@@ -72,32 +72,78 @@ module Gym
|
|
72
72
|
def pipe
|
73
73
|
pipe = []
|
74
74
|
pipe << "| tee #{xcodebuild_log_path.shellescape}"
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
pipe << report_output_html.shellescape
|
92
|
-
elsif report_output_json
|
93
|
-
pipe << " --report json-compilation-database --output "
|
94
|
-
pipe << report_output_json.shellescape
|
95
|
-
end
|
75
|
+
|
76
|
+
formatter = Gym.config[:xcodebuild_formatter].chomp
|
77
|
+
options = legacy_xcpretty_options
|
78
|
+
|
79
|
+
if Gym.config[:disable_xcpretty] || formatter == ''
|
80
|
+
UI.verbose("Not using an xcodebuild formatter")
|
81
|
+
elsif !options.empty?
|
82
|
+
UI.important("Detected legacy xcpretty being used so formatting wth xcpretty")
|
83
|
+
UI.important("Option(s) used: #{options.join(', ')}")
|
84
|
+
pipe += pipe_xcpretty
|
85
|
+
elsif formatter == 'xcpretty'
|
86
|
+
pipe += pipe_xcpretty
|
87
|
+
elsif formatter == 'xcbeautify'
|
88
|
+
pipe += pipe_xcbeautify
|
89
|
+
else
|
90
|
+
pipe << "| #{formatter}"
|
96
91
|
end
|
92
|
+
|
97
93
|
pipe << "> /dev/null" if Gym.config[:suppress_xcode_output]
|
98
94
|
pipe
|
99
95
|
end
|
100
96
|
|
97
|
+
def pipe_xcbeautify
|
98
|
+
pipe = ['| xcbeautify']
|
99
|
+
|
100
|
+
if FastlaneCore::Helper.colors_disabled?
|
101
|
+
pipe << '--disable-colored-output'
|
102
|
+
end
|
103
|
+
|
104
|
+
return pipe
|
105
|
+
end
|
106
|
+
|
107
|
+
def legacy_xcpretty_options
|
108
|
+
options = []
|
109
|
+
|
110
|
+
options << "xcpretty_test_format" if Gym.config[:xcpretty_test_format]
|
111
|
+
options << "xcpretty_formatter" if Gym.config[:xcpretty_formatter]
|
112
|
+
options << "xcpretty_report_junit" if Gym.config[:xcpretty_report_junit]
|
113
|
+
options << "xcpretty_report_html" if Gym.config[:xcpretty_report_html]
|
114
|
+
options << "xcpretty_report_json" if Gym.config[:xcpretty_report_json]
|
115
|
+
options << "xcpretty_utf" if Gym.config[:xcpretty_utf]
|
116
|
+
|
117
|
+
return options
|
118
|
+
end
|
119
|
+
|
120
|
+
def pipe_xcpretty
|
121
|
+
pipe = []
|
122
|
+
|
123
|
+
formatter = Gym.config[:xcpretty_formatter]
|
124
|
+
pipe << "| xcpretty"
|
125
|
+
pipe << " --test" if Gym.config[:xcpretty_test_format]
|
126
|
+
pipe << " --no-color" if Helper.colors_disabled?
|
127
|
+
pipe << " --formatter " if formatter
|
128
|
+
pipe << formatter if formatter
|
129
|
+
pipe << "--utf" if Gym.config[:xcpretty_utf]
|
130
|
+
report_output_junit = Gym.config[:xcpretty_report_junit]
|
131
|
+
report_output_html = Gym.config[:xcpretty_report_html]
|
132
|
+
report_output_json = Gym.config[:xcpretty_report_json]
|
133
|
+
if report_output_junit
|
134
|
+
pipe << " --report junit --output "
|
135
|
+
pipe << report_output_junit.shellescape
|
136
|
+
elsif report_output_html
|
137
|
+
pipe << " --report html --output "
|
138
|
+
pipe << report_output_html.shellescape
|
139
|
+
elsif report_output_json
|
140
|
+
pipe << " --report json-compilation-database --output "
|
141
|
+
pipe << report_output_json.shellescape
|
142
|
+
end
|
143
|
+
|
144
|
+
pipe
|
145
|
+
end
|
146
|
+
|
101
147
|
def post_build
|
102
148
|
commands = []
|
103
149
|
commands << %{grep -E '^[0-9.]+ms' #{xcodebuild_log_path.shellescape} | grep -vE '^0\.[0-9]' | sort -nr > culprits.txt} if Gym.config[:analyze_build_time]
|
data/gym/lib/gym/options.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'fastlane_core/configuration/config_item'
|
2
|
+
require 'fastlane/helper/xcodebuild_formatter_helper'
|
2
3
|
require 'credentials_manager/appfile_config'
|
3
4
|
require_relative 'module'
|
4
5
|
|
@@ -230,8 +231,18 @@ module Gym
|
|
230
231
|
description: "Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path",
|
231
232
|
optional: true,
|
232
233
|
type: Boolean),
|
234
|
+
|
235
|
+
FastlaneCore::ConfigItem.new(key: :xcodebuild_formatter,
|
236
|
+
env_names: ["GYM_XCODEBUILD_FORMATTER", "FASTLANE_XCODEBUILD_FORMATTER"],
|
237
|
+
description: "xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)",
|
238
|
+
type: String,
|
239
|
+
default_value: Fastlane::Helper::XcodebuildFormatterHelper.xcbeautify_installed? ? 'xcbeautify' : 'xcpretty',
|
240
|
+
default_value_dynamic: true),
|
241
|
+
|
242
|
+
# xcpretty
|
233
243
|
FastlaneCore::ConfigItem.new(key: :disable_xcpretty,
|
234
244
|
env_name: "DISABLE_XCPRETTY",
|
245
|
+
deprecated: "Use `xcodebuild_formatter: ''` instead",
|
235
246
|
description: "Disable xcpretty formatting of build output",
|
236
247
|
optional: true,
|
237
248
|
type: Boolean),
|
@@ -259,16 +270,17 @@ module Gym
|
|
259
270
|
env_name: "XCPRETTY_REPORT_JSON",
|
260
271
|
description: "Have xcpretty create a JSON compilation database at the provided path",
|
261
272
|
optional: true),
|
262
|
-
FastlaneCore::ConfigItem.new(key: :analyze_build_time,
|
263
|
-
env_name: "GYM_ANALYZE_BUILD_TIME",
|
264
|
-
description: "Analyze the project build time and store the output in 'culprits.txt' file",
|
265
|
-
optional: true,
|
266
|
-
type: Boolean),
|
267
273
|
FastlaneCore::ConfigItem.new(key: :xcpretty_utf,
|
268
274
|
env_name: "XCPRETTY_UTF",
|
269
275
|
description: "Have xcpretty use unicode encoding when reporting builds",
|
270
276
|
optional: true,
|
271
277
|
type: Boolean),
|
278
|
+
|
279
|
+
FastlaneCore::ConfigItem.new(key: :analyze_build_time,
|
280
|
+
env_name: "GYM_ANALYZE_BUILD_TIME",
|
281
|
+
description: "Analyze the project build time and store the output in 'culprits.txt' file",
|
282
|
+
optional: true,
|
283
|
+
type: Boolean),
|
272
284
|
FastlaneCore::ConfigItem.new(key: :skip_profile_detection,
|
273
285
|
env_name: "GYM_SKIP_PROFILE_DETECTION",
|
274
286
|
description: "Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used",
|
data/scan/lib/scan/options.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'fastlane_core/configuration/config_item'
|
2
|
+
require 'fastlane/helper/xcodebuild_formatter_helper'
|
2
3
|
require 'credentials_manager/appfile_config'
|
3
4
|
require_relative 'module'
|
4
5
|
|
@@ -214,11 +215,7 @@ module Scan
|
|
214
215
|
description: "Should the HTML report be opened when tests are completed?",
|
215
216
|
is_string: false,
|
216
217
|
default_value: false),
|
217
|
-
|
218
|
-
env_name: "SCAN_DISABLE_XCPRETTY",
|
219
|
-
description: "Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table",
|
220
|
-
type: Boolean,
|
221
|
-
optional: true),
|
218
|
+
|
222
219
|
FastlaneCore::ConfigItem.new(key: :output_directory,
|
223
220
|
short_option: "-o",
|
224
221
|
env_name: "SCAN_OUTPUT_DIRECTORY",
|
@@ -227,6 +224,7 @@ module Scan
|
|
227
224
|
code_gen_default_value: "./test_output",
|
228
225
|
default_value: File.join(containing, "test_output"),
|
229
226
|
default_value_dynamic: true),
|
227
|
+
|
230
228
|
FastlaneCore::ConfigItem.new(key: :output_style,
|
231
229
|
short_option: "-b",
|
232
230
|
env_name: "SCAN_OUTPUT_STYLE",
|
@@ -263,9 +261,35 @@ module Scan
|
|
263
261
|
description: "Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path",
|
264
262
|
optional: true,
|
265
263
|
type: Boolean),
|
264
|
+
|
265
|
+
FastlaneCore::ConfigItem.new(key: :xcodebuild_formatter,
|
266
|
+
env_names: ["SCAN_XCODEBUILD_FORMATTER", "FASTLANE_XCODEBUILD_FORMATTER"],
|
267
|
+
description: "xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)",
|
268
|
+
type: String,
|
269
|
+
default_value: Fastlane::Helper::XcodebuildFormatterHelper.xcbeautify_installed? ? 'xcbeautify' : 'xcpretty',
|
270
|
+
default_value_dynamic: true),
|
271
|
+
FastlaneCore::ConfigItem.new(key: :output_remove_retry_attempts,
|
272
|
+
env_name: "SCAN_OUTPUT_REMOVE_RETRY_ATTEMPS",
|
273
|
+
description: "Remove retry attempts from test results table and the JUnit report (if not using xcpretty)",
|
274
|
+
type: Boolean,
|
275
|
+
default_value: false),
|
276
|
+
|
277
|
+
# xcpretty
|
278
|
+
FastlaneCore::ConfigItem.new(key: :disable_xcpretty,
|
279
|
+
env_name: "SCAN_DISABLE_XCPRETTY",
|
280
|
+
deprecated: "Use `output_style: 'raw'` instead",
|
281
|
+
description: "Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table",
|
282
|
+
type: Boolean,
|
283
|
+
optional: true),
|
266
284
|
FastlaneCore::ConfigItem.new(key: :formatter,
|
267
285
|
short_option: "-n",
|
268
286
|
env_name: "SCAN_FORMATTER",
|
287
|
+
deprecated: "Use 'xcpretty_formatter' instead",
|
288
|
+
description: "A custom xcpretty formatter to use",
|
289
|
+
optional: true),
|
290
|
+
FastlaneCore::ConfigItem.new(key: :xcpretty_formatter,
|
291
|
+
short_option: "-N",
|
292
|
+
env_name: "SCAN_XCPRETTY_FORMATTER",
|
269
293
|
description: "A custom xcpretty formatter to use",
|
270
294
|
optional: true),
|
271
295
|
FastlaneCore::ConfigItem.new(key: :xcpretty_args,
|
@@ -273,6 +297,7 @@ module Scan
|
|
273
297
|
description: "Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf')",
|
274
298
|
type: String,
|
275
299
|
optional: true),
|
300
|
+
|
276
301
|
FastlaneCore::ConfigItem.new(key: :derived_data_path,
|
277
302
|
short_option: "-j",
|
278
303
|
env_name: "SCAN_DERIVED_DATA_PATH",
|