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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +100 -93
  3. data/fastlane/lib/fastlane/actions/trainer.rb +49 -0
  4. data/fastlane/lib/fastlane/helper/xcodebuild_formatter_helper.rb +9 -0
  5. data/fastlane/lib/fastlane/tools.rb +2 -1
  6. data/fastlane/lib/fastlane/version.rb +1 -1
  7. data/fastlane/swift/Deliverfile.swift +1 -1
  8. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  9. data/fastlane/swift/Fastlane.swift +134 -43
  10. data/fastlane/swift/Gymfile.swift +1 -1
  11. data/fastlane/swift/GymfileProtocol.swift +10 -6
  12. data/fastlane/swift/Matchfile.swift +1 -1
  13. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  14. data/fastlane/swift/Precheckfile.swift +1 -1
  15. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  16. data/fastlane/swift/Scanfile.swift +1 -1
  17. data/fastlane/swift/ScanfileProtocol.swift +18 -6
  18. data/fastlane/swift/Screengrabfile.swift +1 -1
  19. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  20. data/fastlane/swift/Snapshotfile.swift +1 -1
  21. data/fastlane/swift/SnapshotfileProtocol.swift +9 -5
  22. data/fastlane/swift/formatting/Brewfile.lock.json +13 -13
  23. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +7 -0
  24. data/gym/lib/gym/generators/build_command_generator.rb +67 -21
  25. data/gym/lib/gym/options.rb +17 -5
  26. data/scan/lib/scan/options.rb +30 -5
  27. data/scan/lib/scan/runner.rb +121 -14
  28. data/scan/lib/scan/test_command_generator.rb +55 -5
  29. data/snapshot/lib/snapshot/options.rb +23 -7
  30. data/snapshot/lib/snapshot/test_command_generator.rb +37 -2
  31. data/trainer/lib/assets/junit.xml.erb +20 -0
  32. data/trainer/lib/trainer/commands_generator.rb +51 -0
  33. data/trainer/lib/trainer/junit_generator.rb +31 -0
  34. data/trainer/lib/trainer/module.rb +10 -0
  35. data/trainer/lib/trainer/options.rb +55 -0
  36. data/trainer/lib/trainer/test_parser.rb +376 -0
  37. data/trainer/lib/trainer/xcresult.rb +403 -0
  38. data/trainer/lib/trainer.rb +7 -0
  39. metadata +29 -18
@@ -1313,14 +1313,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1313
1313
  - xcargs: Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
1314
1314
  - xcconfig: Use an extra XCCONFIG file to build your app
1315
1315
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1316
- - disableXcpretty: Disable xcpretty formatting of build output
1316
+ - xcodebuildFormatter: 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/)
1317
+ - disableXcpretty: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
1317
1318
  - xcprettyTestFormat: Use the test (RSpec style) format for build output
1318
1319
  - xcprettyFormatter: A custom xcpretty formatter to use
1319
1320
  - xcprettyReportJunit: Have xcpretty create a JUnit-style XML report at the provided path
1320
1321
  - xcprettyReportHtml: Have xcpretty create a simple HTML report at the provided path
1321
1322
  - xcprettyReportJson: Have xcpretty create a JSON compilation database at the provided path
1322
- - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1323
1323
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1324
+ - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1324
1325
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1325
1326
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1326
1327
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
@@ -1366,14 +1367,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1366
1367
  xcargs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1367
1368
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1368
1369
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1370
+ xcodebuildFormatter: String = "xcbeautify",
1369
1371
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1370
1372
  xcprettyTestFormat: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1371
1373
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1372
1374
  xcprettyReportJunit: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1373
1375
  xcprettyReportHtml: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1374
1376
  xcprettyReportJson: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1375
- analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1376
1377
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1378
+ analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1377
1379
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1378
1380
  xcodebuildCommand: String = "xcodebuild",
1379
1381
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -1415,14 +1417,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1415
1417
  let xcargsArg = xcargs.asRubyArgument(name: "xcargs", type: nil)
1416
1418
  let xcconfigArg = xcconfig.asRubyArgument(name: "xcconfig", type: nil)
1417
1419
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
1420
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
1418
1421
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
1419
1422
  let xcprettyTestFormatArg = xcprettyTestFormat.asRubyArgument(name: "xcpretty_test_format", type: nil)
1420
1423
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
1421
1424
  let xcprettyReportJunitArg = xcprettyReportJunit.asRubyArgument(name: "xcpretty_report_junit", type: nil)
1422
1425
  let xcprettyReportHtmlArg = xcprettyReportHtml.asRubyArgument(name: "xcpretty_report_html", type: nil)
1423
1426
  let xcprettyReportJsonArg = xcprettyReportJson.asRubyArgument(name: "xcpretty_report_json", type: nil)
1424
- let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1425
1427
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1428
+ let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1426
1429
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1427
1430
  let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1428
1431
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
@@ -1463,14 +1466,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1463
1466
  xcargsArg,
1464
1467
  xcconfigArg,
1465
1468
  suppressXcodeOutputArg,
1469
+ xcodebuildFormatterArg,
1466
1470
  disableXcprettyArg,
1467
1471
  xcprettyTestFormatArg,
1468
1472
  xcprettyFormatterArg,
1469
1473
  xcprettyReportJunitArg,
1470
1474
  xcprettyReportHtmlArg,
1471
1475
  xcprettyReportJsonArg,
1472
- analyzeBuildTimeArg,
1473
1476
  xcprettyUtfArg,
1477
+ analyzeBuildTimeArg,
1474
1478
  skipProfileDetectionArg,
1475
1479
  xcodebuildCommandArg,
1476
1480
  clonedSourcePackagesPathArg,
@@ -1519,14 +1523,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1519
1523
  - xcargs: Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
1520
1524
  - xcconfig: Use an extra XCCONFIG file to build your app
1521
1525
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1522
- - disableXcpretty: Disable xcpretty formatting of build output
1526
+ - xcodebuildFormatter: 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/)
1527
+ - disableXcpretty: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
1523
1528
  - xcprettyTestFormat: Use the test (RSpec style) format for build output
1524
1529
  - xcprettyFormatter: A custom xcpretty formatter to use
1525
1530
  - xcprettyReportJunit: Have xcpretty create a JUnit-style XML report at the provided path
1526
1531
  - xcprettyReportHtml: Have xcpretty create a simple HTML report at the provided path
1527
1532
  - xcprettyReportJson: Have xcpretty create a JSON compilation database at the provided path
1528
- - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1529
1533
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1534
+ - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1530
1535
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1531
1536
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1532
1537
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
@@ -1569,14 +1574,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1569
1574
  xcargs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1570
1575
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1571
1576
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1577
+ xcodebuildFormatter: String = "xcbeautify",
1572
1578
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1573
1579
  xcprettyTestFormat: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1574
1580
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1575
1581
  xcprettyReportJunit: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1576
1582
  xcprettyReportHtml: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1577
1583
  xcprettyReportJson: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1578
- analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1579
1584
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1585
+ analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1580
1586
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1581
1587
  xcodebuildCommand: String = "xcodebuild",
1582
1588
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -1615,14 +1621,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1615
1621
  let xcargsArg = xcargs.asRubyArgument(name: "xcargs", type: nil)
1616
1622
  let xcconfigArg = xcconfig.asRubyArgument(name: "xcconfig", type: nil)
1617
1623
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
1624
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
1618
1625
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
1619
1626
  let xcprettyTestFormatArg = xcprettyTestFormat.asRubyArgument(name: "xcpretty_test_format", type: nil)
1620
1627
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
1621
1628
  let xcprettyReportJunitArg = xcprettyReportJunit.asRubyArgument(name: "xcpretty_report_junit", type: nil)
1622
1629
  let xcprettyReportHtmlArg = xcprettyReportHtml.asRubyArgument(name: "xcpretty_report_html", type: nil)
1623
1630
  let xcprettyReportJsonArg = xcprettyReportJson.asRubyArgument(name: "xcpretty_report_json", type: nil)
1624
- let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1625
1631
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1632
+ let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1626
1633
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1627
1634
  let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1628
1635
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
@@ -1660,14 +1667,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1660
1667
  xcargsArg,
1661
1668
  xcconfigArg,
1662
1669
  suppressXcodeOutputArg,
1670
+ xcodebuildFormatterArg,
1663
1671
  disableXcprettyArg,
1664
1672
  xcprettyTestFormatArg,
1665
1673
  xcprettyFormatterArg,
1666
1674
  xcprettyReportJunitArg,
1667
1675
  xcprettyReportHtmlArg,
1668
1676
  xcprettyReportJsonArg,
1669
- analyzeBuildTimeArg,
1670
1677
  xcprettyUtfArg,
1678
+ analyzeBuildTimeArg,
1671
1679
  skipProfileDetectionArg,
1672
1680
  xcodebuildCommandArg,
1673
1681
  clonedSourcePackagesPathArg,
@@ -1717,14 +1725,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1717
1725
  - xcargs: Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
1718
1726
  - xcconfig: Use an extra XCCONFIG file to build your app
1719
1727
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1720
- - disableXcpretty: Disable xcpretty formatting of build output
1728
+ - xcodebuildFormatter: 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/)
1729
+ - disableXcpretty: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
1721
1730
  - xcprettyTestFormat: Use the test (RSpec style) format for build output
1722
1731
  - xcprettyFormatter: A custom xcpretty formatter to use
1723
1732
  - xcprettyReportJunit: Have xcpretty create a JUnit-style XML report at the provided path
1724
1733
  - xcprettyReportHtml: Have xcpretty create a simple HTML report at the provided path
1725
1734
  - xcprettyReportJson: Have xcpretty create a JSON compilation database at the provided path
1726
- - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1727
1735
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1736
+ - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1728
1737
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1729
1738
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1730
1739
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
@@ -1768,14 +1777,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1768
1777
  xcargs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1769
1778
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1770
1779
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1780
+ xcodebuildFormatter: String = "xcbeautify",
1771
1781
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1772
1782
  xcprettyTestFormat: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1773
1783
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1774
1784
  xcprettyReportJunit: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1775
1785
  xcprettyReportHtml: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1776
1786
  xcprettyReportJson: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1777
- analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1778
1787
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1788
+ analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1779
1789
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1780
1790
  xcodebuildCommand: String = "xcodebuild",
1781
1791
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -1815,14 +1825,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1815
1825
  let xcargsArg = xcargs.asRubyArgument(name: "xcargs", type: nil)
1816
1826
  let xcconfigArg = xcconfig.asRubyArgument(name: "xcconfig", type: nil)
1817
1827
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
1828
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
1818
1829
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
1819
1830
  let xcprettyTestFormatArg = xcprettyTestFormat.asRubyArgument(name: "xcpretty_test_format", type: nil)
1820
1831
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
1821
1832
  let xcprettyReportJunitArg = xcprettyReportJunit.asRubyArgument(name: "xcpretty_report_junit", type: nil)
1822
1833
  let xcprettyReportHtmlArg = xcprettyReportHtml.asRubyArgument(name: "xcpretty_report_html", type: nil)
1823
1834
  let xcprettyReportJsonArg = xcprettyReportJson.asRubyArgument(name: "xcpretty_report_json", type: nil)
1824
- let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1825
1835
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1836
+ let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1826
1837
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1827
1838
  let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1828
1839
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
@@ -1861,14 +1872,15 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1861
1872
  xcargsArg,
1862
1873
  xcconfigArg,
1863
1874
  suppressXcodeOutputArg,
1875
+ xcodebuildFormatterArg,
1864
1876
  disableXcprettyArg,
1865
1877
  xcprettyTestFormatArg,
1866
1878
  xcprettyFormatterArg,
1867
1879
  xcprettyReportJunitArg,
1868
1880
  xcprettyReportHtmlArg,
1869
1881
  xcprettyReportJsonArg,
1870
- analyzeBuildTimeArg,
1871
1882
  xcprettyUtfArg,
1883
+ analyzeBuildTimeArg,
1872
1884
  skipProfileDetectionArg,
1873
1885
  xcodebuildCommandArg,
1874
1886
  clonedSourcePackagesPathArg,
@@ -2108,7 +2120,6 @@ public func captureAndroidScreenshots(androidHome: OptionalConfigValue<String?>
2108
2120
  - clean: Should the project be cleaned before building it?
2109
2121
  - testWithoutBuilding: Test without building, requires a derived data path
2110
2122
  - configuration: The configuration to use when building the app. Defaults to 'Release'
2111
- - xcprettyArgs: Additional xcpretty arguments
2112
2123
  - sdk: The SDK that should be used for building the application
2113
2124
  - scheme: The scheme you want to use, this must be the scheme for the UI Tests
2114
2125
  - numberOfRetries: The number of times a test can fail before snapshot should stop retrying
@@ -2125,6 +2136,8 @@ public func captureAndroidScreenshots(androidHome: OptionalConfigValue<String?>
2125
2136
  - testplan: The testplan associated with the scheme that should be used for testing
2126
2137
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
2127
2138
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
2139
+ - xcodebuildFormatter: 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/)
2140
+ - xcprettyArgs: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Additional xcpretty arguments
2128
2141
  - disableXcpretty: Disable xcpretty formatting of build
2129
2142
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
2130
2143
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -2157,7 +2170,6 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2157
2170
  clean: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2158
2171
  testWithoutBuilding: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
2159
2172
  configuration: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2160
- xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2161
2173
  sdk: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2162
2174
  scheme: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2163
2175
  numberOfRetries: Int = 1,
@@ -2174,6 +2186,8 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2174
2186
  testplan: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2175
2187
  onlyTesting: Any? = nil,
2176
2188
  skipTesting: Any? = nil,
2189
+ xcodebuildFormatter: String = "xcbeautify",
2190
+ xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2177
2191
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
2178
2192
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
2179
2193
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(false))
@@ -2206,7 +2220,6 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2206
2220
  let cleanArg = clean.asRubyArgument(name: "clean", type: nil)
2207
2221
  let testWithoutBuildingArg = testWithoutBuilding.asRubyArgument(name: "test_without_building", type: nil)
2208
2222
  let configurationArg = configuration.asRubyArgument(name: "configuration", type: nil)
2209
- let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
2210
2223
  let sdkArg = sdk.asRubyArgument(name: "sdk", type: nil)
2211
2224
  let schemeArg = scheme.asRubyArgument(name: "scheme", type: nil)
2212
2225
  let numberOfRetriesArg = RubyCommand.Argument(name: "number_of_retries", value: numberOfRetries, type: nil)
@@ -2223,6 +2236,8 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2223
2236
  let testplanArg = testplan.asRubyArgument(name: "testplan", type: nil)
2224
2237
  let onlyTestingArg = RubyCommand.Argument(name: "only_testing", value: onlyTesting, type: nil)
2225
2238
  let skipTestingArg = RubyCommand.Argument(name: "skip_testing", value: skipTesting, type: nil)
2239
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
2240
+ let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
2226
2241
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
2227
2242
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
2228
2243
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -2254,7 +2269,6 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2254
2269
  cleanArg,
2255
2270
  testWithoutBuildingArg,
2256
2271
  configurationArg,
2257
- xcprettyArgsArg,
2258
2272
  sdkArg,
2259
2273
  schemeArg,
2260
2274
  numberOfRetriesArg,
@@ -2271,6 +2285,8 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2271
2285
  testplanArg,
2272
2286
  onlyTestingArg,
2273
2287
  skipTestingArg,
2288
+ xcodebuildFormatterArg,
2289
+ xcprettyArgsArg,
2274
2290
  disableXcprettyArg,
2275
2291
  suppressXcodeOutputArg,
2276
2292
  useSystemScmArg]
@@ -2313,7 +2329,6 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2313
2329
  - clean: Should the project be cleaned before building it?
2314
2330
  - testWithoutBuilding: Test without building, requires a derived data path
2315
2331
  - configuration: The configuration to use when building the app. Defaults to 'Release'
2316
- - xcprettyArgs: Additional xcpretty arguments
2317
2332
  - sdk: The SDK that should be used for building the application
2318
2333
  - scheme: The scheme you want to use, this must be the scheme for the UI Tests
2319
2334
  - numberOfRetries: The number of times a test can fail before snapshot should stop retrying
@@ -2330,6 +2345,8 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2330
2345
  - testplan: The testplan associated with the scheme that should be used for testing
2331
2346
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
2332
2347
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
2348
+ - xcodebuildFormatter: 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/)
2349
+ - xcprettyArgs: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Additional xcpretty arguments
2333
2350
  - disableXcpretty: Disable xcpretty formatting of build
2334
2351
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
2335
2352
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -2362,7 +2379,6 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2362
2379
  clean: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2363
2380
  testWithoutBuilding: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
2364
2381
  configuration: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2365
- xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2366
2382
  sdk: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2367
2383
  scheme: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2368
2384
  numberOfRetries: Int = 1,
@@ -2379,6 +2395,8 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2379
2395
  testplan: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2380
2396
  onlyTesting: Any? = nil,
2381
2397
  skipTesting: Any? = nil,
2398
+ xcodebuildFormatter: String = "xcbeautify",
2399
+ xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2382
2400
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
2383
2401
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
2384
2402
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(false))
@@ -2411,7 +2429,6 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2411
2429
  let cleanArg = clean.asRubyArgument(name: "clean", type: nil)
2412
2430
  let testWithoutBuildingArg = testWithoutBuilding.asRubyArgument(name: "test_without_building", type: nil)
2413
2431
  let configurationArg = configuration.asRubyArgument(name: "configuration", type: nil)
2414
- let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
2415
2432
  let sdkArg = sdk.asRubyArgument(name: "sdk", type: nil)
2416
2433
  let schemeArg = scheme.asRubyArgument(name: "scheme", type: nil)
2417
2434
  let numberOfRetriesArg = RubyCommand.Argument(name: "number_of_retries", value: numberOfRetries, type: nil)
@@ -2428,6 +2445,8 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2428
2445
  let testplanArg = testplan.asRubyArgument(name: "testplan", type: nil)
2429
2446
  let onlyTestingArg = RubyCommand.Argument(name: "only_testing", value: onlyTesting, type: nil)
2430
2447
  let skipTestingArg = RubyCommand.Argument(name: "skip_testing", value: skipTesting, type: nil)
2448
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
2449
+ let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
2431
2450
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
2432
2451
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
2433
2452
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -2459,7 +2478,6 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2459
2478
  cleanArg,
2460
2479
  testWithoutBuildingArg,
2461
2480
  configurationArg,
2462
- xcprettyArgsArg,
2463
2481
  sdkArg,
2464
2482
  schemeArg,
2465
2483
  numberOfRetriesArg,
@@ -2476,6 +2494,8 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2476
2494
  testplanArg,
2477
2495
  onlyTestingArg,
2478
2496
  skipTestingArg,
2497
+ xcodebuildFormatterArg,
2498
+ xcprettyArgsArg,
2479
2499
  disableXcprettyArg,
2480
2500
  suppressXcodeOutputArg,
2481
2501
  useSystemScmArg]
@@ -5528,14 +5548,15 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5528
5548
  - xcargs: Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
5529
5549
  - xcconfig: Use an extra XCCONFIG file to build your app
5530
5550
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
5531
- - disableXcpretty: Disable xcpretty formatting of build output
5551
+ - xcodebuildFormatter: 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/)
5552
+ - disableXcpretty: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
5532
5553
  - xcprettyTestFormat: Use the test (RSpec style) format for build output
5533
5554
  - xcprettyFormatter: A custom xcpretty formatter to use
5534
5555
  - xcprettyReportJunit: Have xcpretty create a JUnit-style XML report at the provided path
5535
5556
  - xcprettyReportHtml: Have xcpretty create a simple HTML report at the provided path
5536
5557
  - xcprettyReportJson: Have xcpretty create a JSON compilation database at the provided path
5537
- - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
5538
5558
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
5559
+ - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
5539
5560
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
5540
5561
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
5541
5562
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
@@ -5581,14 +5602,15 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5581
5602
  xcargs: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.xcargs),
5582
5603
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.xcconfig),
5583
5604
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.suppressXcodeOutput),
5605
+ xcodebuildFormatter: String = gymfile.xcodebuildFormatter,
5584
5606
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.disableXcpretty),
5585
5607
  xcprettyTestFormat: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.xcprettyTestFormat),
5586
5608
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.xcprettyFormatter),
5587
5609
  xcprettyReportJunit: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.xcprettyReportJunit),
5588
5610
  xcprettyReportHtml: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.xcprettyReportHtml),
5589
5611
  xcprettyReportJson: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.xcprettyReportJson),
5590
- analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.analyzeBuildTime),
5591
5612
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.xcprettyUtf),
5613
+ analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.analyzeBuildTime),
5592
5614
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.skipProfileDetection),
5593
5615
  xcodebuildCommand: String = gymfile.xcodebuildCommand,
5594
5616
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.clonedSourcePackagesPath),
@@ -5630,14 +5652,15 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5630
5652
  let xcargsArg = xcargs.asRubyArgument(name: "xcargs", type: nil)
5631
5653
  let xcconfigArg = xcconfig.asRubyArgument(name: "xcconfig", type: nil)
5632
5654
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
5655
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
5633
5656
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
5634
5657
  let xcprettyTestFormatArg = xcprettyTestFormat.asRubyArgument(name: "xcpretty_test_format", type: nil)
5635
5658
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
5636
5659
  let xcprettyReportJunitArg = xcprettyReportJunit.asRubyArgument(name: "xcpretty_report_junit", type: nil)
5637
5660
  let xcprettyReportHtmlArg = xcprettyReportHtml.asRubyArgument(name: "xcpretty_report_html", type: nil)
5638
5661
  let xcprettyReportJsonArg = xcprettyReportJson.asRubyArgument(name: "xcpretty_report_json", type: nil)
5639
- let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
5640
5662
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
5663
+ let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
5641
5664
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
5642
5665
  let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
5643
5666
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
@@ -5678,14 +5701,15 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5678
5701
  xcargsArg,
5679
5702
  xcconfigArg,
5680
5703
  suppressXcodeOutputArg,
5704
+ xcodebuildFormatterArg,
5681
5705
  disableXcprettyArg,
5682
5706
  xcprettyTestFormatArg,
5683
5707
  xcprettyFormatterArg,
5684
5708
  xcprettyReportJunitArg,
5685
5709
  xcprettyReportHtmlArg,
5686
5710
  xcprettyReportJsonArg,
5687
- analyzeBuildTimeArg,
5688
5711
  xcprettyUtfArg,
5712
+ analyzeBuildTimeArg,
5689
5713
  skipProfileDetectionArg,
5690
5714
  xcodebuildCommandArg,
5691
5715
  clonedSourcePackagesPathArg,
@@ -8558,7 +8582,6 @@ public func rubyVersion() {
8558
8582
  - addressSanitizer: Should the address sanitizer be turned on?
8559
8583
  - threadSanitizer: Should the thread sanitizer be turned on?
8560
8584
  - openReport: Should the HTML report be opened when tests are completed?
8561
- - disableXcpretty: Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
8562
8585
  - outputDirectory: The directory in which all reports will be stored
8563
8586
  - outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild)
8564
8587
  - outputTypes: Comma separated list of the output types (e.g. html, junit, json-compilation-database)
@@ -8566,7 +8589,11 @@ public func rubyVersion() {
8566
8589
  - buildlogPath: The directory where to store the raw log
8567
8590
  - includeSimulatorLogs: If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory
8568
8591
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
8569
- - formatter: A custom xcpretty formatter to use
8592
+ - xcodebuildFormatter: 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/)
8593
+ - outputRemoveRetryAttempts: Remove retry attempts from test results table and the JUnit report (if not using xcpretty)
8594
+ - disableXcpretty: **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
8595
+ - formatter: **DEPRECATED!** Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use
8596
+ - xcprettyFormatter: A custom xcpretty formatter to use
8570
8597
  - xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf')
8571
8598
  - derivedDataPath: The directory where build products and other derived data will go
8572
8599
  - shouldZipBuildProducts: Should zip the derived data build products and place in output path?
@@ -8633,7 +8660,6 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8633
8660
  addressSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8634
8661
  threadSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8635
8662
  openReport: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8636
- disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8637
8663
  outputDirectory: String = "./test_output",
8638
8664
  outputStyle: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8639
8665
  outputTypes: String = "html,junit",
@@ -8641,7 +8667,11 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8641
8667
  buildlogPath: String = "~/Library/Logs/scan",
8642
8668
  includeSimulatorLogs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8643
8669
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8670
+ xcodebuildFormatter: String = "xcbeautify",
8671
+ outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8672
+ disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8644
8673
  formatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8674
+ xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8645
8675
  xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8646
8676
  derivedDataPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8647
8677
  shouldZipBuildProducts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -8706,7 +8736,6 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8706
8736
  let addressSanitizerArg = addressSanitizer.asRubyArgument(name: "address_sanitizer", type: nil)
8707
8737
  let threadSanitizerArg = threadSanitizer.asRubyArgument(name: "thread_sanitizer", type: nil)
8708
8738
  let openReportArg = openReport.asRubyArgument(name: "open_report", type: nil)
8709
- let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
8710
8739
  let outputDirectoryArg = RubyCommand.Argument(name: "output_directory", value: outputDirectory, type: nil)
8711
8740
  let outputStyleArg = outputStyle.asRubyArgument(name: "output_style", type: nil)
8712
8741
  let outputTypesArg = RubyCommand.Argument(name: "output_types", value: outputTypes, type: nil)
@@ -8714,7 +8743,11 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8714
8743
  let buildlogPathArg = RubyCommand.Argument(name: "buildlog_path", value: buildlogPath, type: nil)
8715
8744
  let includeSimulatorLogsArg = includeSimulatorLogs.asRubyArgument(name: "include_simulator_logs", type: nil)
8716
8745
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
8746
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
8747
+ let outputRemoveRetryAttemptsArg = outputRemoveRetryAttempts.asRubyArgument(name: "output_remove_retry_attempts", type: nil)
8748
+ let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
8717
8749
  let formatterArg = formatter.asRubyArgument(name: "formatter", type: nil)
8750
+ let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
8718
8751
  let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
8719
8752
  let derivedDataPathArg = derivedDataPath.asRubyArgument(name: "derived_data_path", type: nil)
8720
8753
  let shouldZipBuildProductsArg = shouldZipBuildProducts.asRubyArgument(name: "should_zip_build_products", type: nil)
@@ -8778,7 +8811,6 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8778
8811
  addressSanitizerArg,
8779
8812
  threadSanitizerArg,
8780
8813
  openReportArg,
8781
- disableXcprettyArg,
8782
8814
  outputDirectoryArg,
8783
8815
  outputStyleArg,
8784
8816
  outputTypesArg,
@@ -8786,7 +8818,11 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8786
8818
  buildlogPathArg,
8787
8819
  includeSimulatorLogsArg,
8788
8820
  suppressXcodeOutputArg,
8821
+ xcodebuildFormatterArg,
8822
+ outputRemoveRetryAttemptsArg,
8823
+ disableXcprettyArg,
8789
8824
  formatterArg,
8825
+ xcprettyFormatterArg,
8790
8826
  xcprettyArgsArg,
8791
8827
  derivedDataPathArg,
8792
8828
  shouldZipBuildProductsArg,
@@ -8963,7 +8999,6 @@ public func say(text: [String],
8963
8999
  - addressSanitizer: Should the address sanitizer be turned on?
8964
9000
  - threadSanitizer: Should the thread sanitizer be turned on?
8965
9001
  - openReport: Should the HTML report be opened when tests are completed?
8966
- - disableXcpretty: Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
8967
9002
  - outputDirectory: The directory in which all reports will be stored
8968
9003
  - outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild)
8969
9004
  - outputTypes: Comma separated list of the output types (e.g. html, junit, json-compilation-database)
@@ -8971,7 +9006,11 @@ public func say(text: [String],
8971
9006
  - buildlogPath: The directory where to store the raw log
8972
9007
  - includeSimulatorLogs: If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory
8973
9008
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
8974
- - formatter: A custom xcpretty formatter to use
9009
+ - xcodebuildFormatter: 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/)
9010
+ - outputRemoveRetryAttempts: Remove retry attempts from test results table and the JUnit report (if not using xcpretty)
9011
+ - disableXcpretty: **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
9012
+ - formatter: **DEPRECATED!** Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use
9013
+ - xcprettyFormatter: A custom xcpretty formatter to use
8975
9014
  - xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf')
8976
9015
  - derivedDataPath: The directory where build products and other derived data will go
8977
9016
  - shouldZipBuildProducts: Should zip the derived data build products and place in output path?
@@ -9038,7 +9077,6 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9038
9077
  addressSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.addressSanitizer),
9039
9078
  threadSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.threadSanitizer),
9040
9079
  openReport: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.openReport),
9041
- disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.disableXcpretty),
9042
9080
  outputDirectory: String = scanfile.outputDirectory,
9043
9081
  outputStyle: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.outputStyle),
9044
9082
  outputTypes: String = scanfile.outputTypes,
@@ -9046,7 +9084,11 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9046
9084
  buildlogPath: String = scanfile.buildlogPath,
9047
9085
  includeSimulatorLogs: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.includeSimulatorLogs),
9048
9086
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.suppressXcodeOutput),
9087
+ xcodebuildFormatter: String = scanfile.xcodebuildFormatter,
9088
+ outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.outputRemoveRetryAttempts),
9089
+ disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.disableXcpretty),
9049
9090
  formatter: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.formatter),
9091
+ xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcprettyFormatter),
9050
9092
  xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcprettyArgs),
9051
9093
  derivedDataPath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.derivedDataPath),
9052
9094
  shouldZipBuildProducts: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.shouldZipBuildProducts),
@@ -9111,7 +9153,6 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9111
9153
  let addressSanitizerArg = addressSanitizer.asRubyArgument(name: "address_sanitizer", type: nil)
9112
9154
  let threadSanitizerArg = threadSanitizer.asRubyArgument(name: "thread_sanitizer", type: nil)
9113
9155
  let openReportArg = openReport.asRubyArgument(name: "open_report", type: nil)
9114
- let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
9115
9156
  let outputDirectoryArg = RubyCommand.Argument(name: "output_directory", value: outputDirectory, type: nil)
9116
9157
  let outputStyleArg = outputStyle.asRubyArgument(name: "output_style", type: nil)
9117
9158
  let outputTypesArg = RubyCommand.Argument(name: "output_types", value: outputTypes, type: nil)
@@ -9119,7 +9160,11 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9119
9160
  let buildlogPathArg = RubyCommand.Argument(name: "buildlog_path", value: buildlogPath, type: nil)
9120
9161
  let includeSimulatorLogsArg = includeSimulatorLogs.asRubyArgument(name: "include_simulator_logs", type: nil)
9121
9162
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
9163
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
9164
+ let outputRemoveRetryAttemptsArg = outputRemoveRetryAttempts.asRubyArgument(name: "output_remove_retry_attempts", type: nil)
9165
+ let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
9122
9166
  let formatterArg = formatter.asRubyArgument(name: "formatter", type: nil)
9167
+ let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
9123
9168
  let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
9124
9169
  let derivedDataPathArg = derivedDataPath.asRubyArgument(name: "derived_data_path", type: nil)
9125
9170
  let shouldZipBuildProductsArg = shouldZipBuildProducts.asRubyArgument(name: "should_zip_build_products", type: nil)
@@ -9183,7 +9228,6 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9183
9228
  addressSanitizerArg,
9184
9229
  threadSanitizerArg,
9185
9230
  openReportArg,
9186
- disableXcprettyArg,
9187
9231
  outputDirectoryArg,
9188
9232
  outputStyleArg,
9189
9233
  outputTypesArg,
@@ -9191,7 +9235,11 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9191
9235
  buildlogPathArg,
9192
9236
  includeSimulatorLogsArg,
9193
9237
  suppressXcodeOutputArg,
9238
+ xcodebuildFormatterArg,
9239
+ outputRemoveRetryAttemptsArg,
9240
+ disableXcprettyArg,
9194
9241
  formatterArg,
9242
+ xcprettyFormatterArg,
9195
9243
  xcprettyArgsArg,
9196
9244
  derivedDataPathArg,
9197
9245
  shouldZipBuildProductsArg,
@@ -10167,7 +10215,6 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10167
10215
  - clean: Should the project be cleaned before building it?
10168
10216
  - testWithoutBuilding: Test without building, requires a derived data path
10169
10217
  - configuration: The configuration to use when building the app. Defaults to 'Release'
10170
- - xcprettyArgs: Additional xcpretty arguments
10171
10218
  - sdk: The SDK that should be used for building the application
10172
10219
  - scheme: The scheme you want to use, this must be the scheme for the UI Tests
10173
10220
  - numberOfRetries: The number of times a test can fail before snapshot should stop retrying
@@ -10184,6 +10231,8 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10184
10231
  - testplan: The testplan associated with the scheme that should be used for testing
10185
10232
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
10186
10233
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
10234
+ - xcodebuildFormatter: 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/)
10235
+ - xcprettyArgs: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Additional xcpretty arguments
10187
10236
  - disableXcpretty: Disable xcpretty formatting of build
10188
10237
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
10189
10238
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -10216,7 +10265,6 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10216
10265
  clean: OptionalConfigValue<Bool> = .fastlaneDefault(snapshotfile.clean),
10217
10266
  testWithoutBuilding: OptionalConfigValue<Bool?> = .fastlaneDefault(snapshotfile.testWithoutBuilding),
10218
10267
  configuration: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.configuration),
10219
- xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.xcprettyArgs),
10220
10268
  sdk: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.sdk),
10221
10269
  scheme: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.scheme),
10222
10270
  numberOfRetries: Int = snapshotfile.numberOfRetries,
@@ -10233,6 +10281,8 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10233
10281
  testplan: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.testplan),
10234
10282
  onlyTesting: Any? = snapshotfile.onlyTesting,
10235
10283
  skipTesting: Any? = snapshotfile.skipTesting,
10284
+ xcodebuildFormatter: String = snapshotfile.xcodebuildFormatter,
10285
+ xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.xcprettyArgs),
10236
10286
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(snapshotfile.disableXcpretty),
10237
10287
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(snapshotfile.suppressXcodeOutput),
10238
10288
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(snapshotfile.useSystemScm))
@@ -10265,7 +10315,6 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10265
10315
  let cleanArg = clean.asRubyArgument(name: "clean", type: nil)
10266
10316
  let testWithoutBuildingArg = testWithoutBuilding.asRubyArgument(name: "test_without_building", type: nil)
10267
10317
  let configurationArg = configuration.asRubyArgument(name: "configuration", type: nil)
10268
- let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
10269
10318
  let sdkArg = sdk.asRubyArgument(name: "sdk", type: nil)
10270
10319
  let schemeArg = scheme.asRubyArgument(name: "scheme", type: nil)
10271
10320
  let numberOfRetriesArg = RubyCommand.Argument(name: "number_of_retries", value: numberOfRetries, type: nil)
@@ -10282,6 +10331,8 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10282
10331
  let testplanArg = testplan.asRubyArgument(name: "testplan", type: nil)
10283
10332
  let onlyTestingArg = RubyCommand.Argument(name: "only_testing", value: onlyTesting, type: nil)
10284
10333
  let skipTestingArg = RubyCommand.Argument(name: "skip_testing", value: skipTesting, type: nil)
10334
+ let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
10335
+ let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
10285
10336
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
10286
10337
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
10287
10338
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -10313,7 +10364,6 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10313
10364
  cleanArg,
10314
10365
  testWithoutBuildingArg,
10315
10366
  configurationArg,
10316
- xcprettyArgsArg,
10317
10367
  sdkArg,
10318
10368
  schemeArg,
10319
10369
  numberOfRetriesArg,
@@ -10330,6 +10380,8 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10330
10380
  testplanArg,
10331
10381
  onlyTestingArg,
10332
10382
  skipTestingArg,
10383
+ xcodebuildFormatterArg,
10384
+ xcprettyArgsArg,
10333
10385
  disableXcprettyArg,
10334
10386
  suppressXcodeOutputArg,
10335
10387
  useSystemScmArg]
@@ -11374,6 +11426,45 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11374
11426
  _ = runner.executeCommand(command)
11375
11427
  }
11376
11428
 
11429
+ /**
11430
+ Convert the Xcode plist log to a JUnit report
11431
+
11432
+ - parameters:
11433
+ - path: Path to the directory that should be converted
11434
+ - extension: The extension for the newly created file. Usually .xml or .junit
11435
+ - outputDirectory: Directoy in which the xml files should be written to. Same directory as source by default
11436
+ - failBuild: Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter
11437
+ - xcprettyNaming: Produces class name and test name identical to xcpretty naming in junit file
11438
+ - silent: Silences all output
11439
+
11440
+ - returns: A hash with the key being the path of the generated file, the value being if the tests were successful
11441
+ */
11442
+ public func trainer(path: String = ".",
11443
+ extension: String = ".xml",
11444
+ outputDirectory: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11445
+ failBuild: OptionalConfigValue<Bool> = .fastlaneDefault(true),
11446
+ xcprettyNaming: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11447
+ silent: OptionalConfigValue<Bool> = .fastlaneDefault(false))
11448
+ {
11449
+ let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
11450
+ let extensionArg = RubyCommand.Argument(name: "extension", value: `extension`, type: nil)
11451
+ let outputDirectoryArg = outputDirectory.asRubyArgument(name: "output_directory", type: nil)
11452
+ let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil)
11453
+ let xcprettyNamingArg = xcprettyNaming.asRubyArgument(name: "xcpretty_naming", type: nil)
11454
+ let silentArg = silent.asRubyArgument(name: "silent", type: nil)
11455
+ let array: [RubyCommand.Argument?] = [pathArg,
11456
+ extensionArg,
11457
+ outputDirectoryArg,
11458
+ failBuildArg,
11459
+ xcprettyNamingArg,
11460
+ silentArg]
11461
+ let args: [RubyCommand.Argument] = array
11462
+ .filter { $0?.value != nil }
11463
+ .compactMap { $0 }
11464
+ let command = RubyCommand(commandID: "", methodName: "trainer", className: nil, args: args)
11465
+ _ = runner.executeCommand(command)
11466
+ }
11467
+
11377
11468
  /**
11378
11469
  Upload a new build to [Tryouts](https://tryouts.io/)
11379
11470
 
@@ -13295,4 +13386,4 @@ public let snapshotfile: Snapshotfile = .init()
13295
13386
 
13296
13387
  // Please don't remove the lines below
13297
13388
  // They are used to detect outdated files
13298
- // FastlaneRunnerAPIVersion [0.9.143]
13389
+ // FastlaneRunnerAPIVersion [0.9.144]