-
Notifications
You must be signed in to change notification settings - Fork 1
/
step.yml
365 lines (321 loc) · 12.4 KB
/
step.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
#
# A couple of useful guides & docs:
#
# - Main Bitrise CLI docs: https://github.com/bitrise-io/bitrise/tree/master/_docs
# - Step Development Guideline: https://github.com/bitrise-io/bitrise/blob/master/_docs/step-development-guideline.md
# - Bitrise.yml format spec: https://github.com/bitrise-io/bitrise/blob/master/_docs/bitrise-yml-format-spec.md
# - Bitrise docs: http://devcenter.bitrise.io/
# - Bitrise CLI guides: http://devcenter.bitrise.io/bitrise-cli/
title: |-
xcparse
summary: |
Extract screenshots, attachments, code coverage, logs, & more from Xcode 11+ xcresult
description: |
Extract screenshots, attachments, code coverage, logs, & more from Xcode 11+ xcresult
website: https://github.com/ChargePoint/bitrise-step-xcparse
source_code_url: https://github.com/ChargePoint/bitrise-step-xcparse
support_url: https://github.com/ChargePoint/bitrise-step-xcparse/issues
host_os_tags:
- osx-10.10
# If this step should be available only for certain project types
# just uncomment this `project_type_tags` section and include all the
# project types supported by the step. If the step can be used for all
# project types then you can just remove this section.
# If no `project_type_tags` specified (or specified as an empty array)
# that means the step can be used for any project type.
# You can find more information about project type tags in the Step Development Guideline:
# https://github.com/bitrise-io/bitrise/blob/master/_docs/step-development-guideline.md
#
project_type_tags:
- ios
- macos
- cordova
- ionic
- react-native
- flutter
# Type tags are used for categorizing steps, for easier step discovery in Step Libraries.
# You can find more information about type tags in the Step Development Guideline:
# https://github.com/bitrise-io/bitrise/blob/master/_docs/step-development-guideline.md
type_tags:
- utility
is_requires_admin_user: true
is_always_run: false
is_skippable: false
run_if: ""
deps:
check_only:
- name: xcode
brew:
- name: git
- name: wget
- name: ChargePoint/xcparse/xcparse
toolkit:
bash:
entry_file: step.sh
inputs:
- xcresult_path: $BITRISE_XCRESULT_PATH
opts:
title: "xcresult path"
description: |-
A `.xcresult` path, relative to the working directory (if specified).
is_required: true
is_expand: true
- extract_attachments: "yes"
opts:
title: Extract Attachments
description: |-
If enabled, the attachments within the xcresult will be extracted.
value_options:
- "yes"
- "no"
- extract_code_coverage: "yes"
opts:
title: Extract Code Coverage
description: |-
If enabled, the code coverage files within the xcresult will be extracted.
value_options:
- "yes"
- "no"
- extract_logs: "yes"
opts:
title: Extract Logs
description: |-
If enabled, the logs & diagnostics within the xcresult will be extracted.
value_options:
- "yes"
- "no"
- extract_screenshots: "yes"
opts:
title: Extract Screenshots
description: |-
If enabled, the screenshots within the xcresult will be extracted.
value_options:
- "yes"
- "no"
- export_to_deploy: "yes"
opts:
title: Export to BITRISE_DEPLOY_DIR
description: |-
If enabled, all generated output will be exported into the ```BITRISE_DEPLOY_DIR```.
value_options:
- "yes"
- "no"
- attachments_divide_by_model: "no"
opts:
category: Attachment Options
title: Divide By Model?
description: |-
If enabled, divides attachments by model
value_options:
- "yes"
- "no"
- attachments_divide_by_os: "no"
opts:
category: Attachment Options
title: Divide By OS?
description: |-
If enabled, divides attachments by OS
value_options:
- "yes"
- "no"
- attachments_divide_by_language: "no"
opts:
category: Attachment Options
title: Divide By Language?
description: |-
If enabled, divides attachments by test language
value_options:
- "yes"
- "no"
- attachments_divide_by_region: "no"
opts:
category: Attachment Options
title: Divide By Region?
description: |-
If enabled, divides attachments by test region
value_options:
- "yes"
- "no"
- attachments_divide_by_test_plan_config: "no"
opts:
category: Attachment Options
title: Divide By Test Plan Configuration?
description: |-
If enabled, divides attachments by test plan configuration
value_options:
- "yes"
- "no"
- attachments_divide_by_test: "no"
opts:
category: Attachment Options
title: Divide By Test?
description: |-
If enabled, divides attachments by test
value_options:
- "yes"
- "no"
- attachments_whitelist_activity_type: ""
opts:
category: Attachment Options
title: Activity Type Whitelist
description: |-
Only extract attachments in the ```.xcresult``` whose activity type matches at least one of the provided activity type strings. If blank, all activity types are allowed.
Activity types can be found using verbose logging. Below are a listing of common ones:
* ```com.apple.dt.xctest.activity-type.attachmentContainer```
Placeholder activity that contains an attachment, may contain user created screenshot
* ```com.apple.dt.xctest.activity-type.deletedAttachment```
Deleted attachment placeholder activity
* ```com.apple.dt.xctest.activity-type.internal```
Internal test step, may have automatic screenshot to show test progression
* ```com.apple.dt.xctest.activity-type.testAssertionFailure```
Step where the test failed in an assertion, may have failure screenshot
* ```com.apple.dt.xctest.activity-type.userCreated```
User created screenshot/attachment
**Note:** When an activity type string is provided which doesn't have a reverse-DNS style domain, it is assumed to be of ```com.apple.dt.xctest.activity-type.``` and the domain is automatically added.
So ```userCreated attachmentContainer``` would be equivalent to ```com.apple.dt.xctest.activity-type.userCreated com.apple.dt.xctest.activity-type.attachmentContainer```
- attachments_whitelist_test_status: ""
opts:
category: Attachment Options
title: Test Status Whitelist
description: |-
Only extract attachments in the ```.xcresult``` tied to tests that have a status that matches at least one of the provided status strings. If blank, all test statuses are allowed.
* ```Success```
Passing tests only
* ```Failure```
Failing tests only
* ```Success Failure```
Passing or failing tests only
Test status strings can be found by using verbose logging.
- attachments_whitelist_uti: ""
opts:
category: Attachment Options
title: UTI Whitelist
description: |-
Only extract attachments in the ```.xcresult``` that conform to at least one of the given UTIs. If left empty, all attachments, regardless of UTI conformance, are extracted.
Common attachment UTIs in xcresults are:
* ```public.image```
Screenshots
* ```public.plain-text```
Test failure debug descriptions
Read [this Apple documentation](https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-SW1) for a list of publicly documented UTIs.
- screenshots_divide_by_model: "no"
opts:
category: Screenshot Options
title: Divide By Model?
description: |-
If enabled, divides screenshots by model
value_options:
- "yes"
- "no"
- screenshots_divide_by_os: "no"
opts:
category: Screenshot Options
title: Divide By OS?
description: |-
If enabled, divides screenshots by OS
value_options:
- "yes"
- "no"
- screenshots_divide_by_language: "no"
opts:
category: Screenshot Options
title: Divide By Language?
description: |-
If enabled, divides screenshots by test language
value_options:
- "yes"
- "no"
- screenshots_divide_by_region: "no"
opts:
category: Screenshot Options
title: Divide By Region?
description: |-
If enabled, divides screenshots by test region
value_options:
- "yes"
- "no"
- screenshots_divide_by_test_plan_config: "no"
opts:
category: Screenshot Options
title: Divide By Test Plan Configuration?
description: |-
If enabled, divides screenshots by test plan configuration
value_options:
- "yes"
- "no"
- screenshots_divide_by_test: "no"
opts:
category: Screenshot Options
title: Divide By Test?
description: |-
If enabled, divides screenshots by test
value_options:
- "yes"
- "no"
- screenshots_whitelist_activity_type: ""
opts:
category: Screenshot Options
title: Activity Type Whitelist
description: |-
Only extract screenshots in the ```.xcresult``` whose activity type matches at least one of the provided activity type strings. If blank, all activity types are allowed.
Activity types can be found using verbose logging. Below are a listing of common ones:
* ```com.apple.dt.xctest.activity-type.attachmentContainer```
Placeholder activity that contains an attachment, may contain user created screenshot
* ```com.apple.dt.xctest.activity-type.deletedAttachment```
Deleted attachment placeholder activity
* ```com.apple.dt.xctest.activity-type.internal```
Internal test step, may have automatic screenshot to show test progression
* ```com.apple.dt.xctest.activity-type.testAssertionFailure```
Step where the test failed in an assertion, may have failure screenshot
* ```com.apple.dt.xctest.activity-type.userCreated```
User created screenshot/attachment
**Note:** When an activity type string is provided which doesn't have a reverse-DNS style domain, it is assumed to be of ```com.apple.dt.xctest.activity-type.``` and the domain is automatically added.
So ```userCreated attachmentContainer``` would be equivalent to ```com.apple.dt.xctest.activity-type.userCreated com.apple.dt.xctest.activity-type.attachmentContainer```
- screenshots_whitelist_test_status: ""
opts:
category: Screenshot Options
title: Test Status Whitelist
description: |-
Only extract screenshots in the ```.xcresult``` tied to tests that have a status that matches at least one of the provided status strings. If blank, all test statuses are allowed.
* ```Success```
Passing tests only
* ```Failure```
Failing tests only
* ```Success Failure```
Passing or failing tests only
Test status strings can be found by using verbose logging.
- verbose: "no"
opts:
category: Debug
title: Enable verbose logging?
description: |-
You can enable verbose logging within xcparse to debug issues. All xcresulttool commands and output will be shown when used.
value_options:
- "yes"
- "no"
outputs:
- XCPARSE_ATTACHMENTS_PATH:
opts:
title: The full test attachments zip path
description: |-
This is the path of the test attachments zip.
- XCPARSE_CODE_COVERAGE_PATH:
opts:
title: The full test code coverage zip path
description: |-
This is the path of the test code coverage zip.
- XCPARSE_LOGS_PATH:
opts:
title: The full test logs zip path
description: |-
This is the path of the test logs zip.
- XCPARSE_SCREENSHOTS_PATH:
opts:
title: The full test screenshots zip path
description: |-
This is the path of the test screenshots zip.
- XCPARSE_VERSION:
opts:
title: xcparse version
description: |-
This is the version of xcparse used for extraction.