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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f80e15767a649f85c39e5b6d1cd2f0f8e4dee37c81a2c1e38c7b90673c04d68
4
- data.tar.gz: 41955caa65ee85fe319708bae375070d44562db6717307eebe28b57be5e6f280
3
+ metadata.gz: a6983f86cfd3fcbcf74e50d5b6e5e0192de17cb7e1ed8e034d0efb262ae4bd99
4
+ data.tar.gz: 440bdbead5a9221e1ccb7d147ad063248f3873d4709976e56a0ef5906dd2a8ba
5
5
  SHA512:
6
- metadata.gz: ed42b7966058076011ee4a18eee35e70457f75f80b014623b9097289798304f62fb030ec16befa57c8bc39b0e9e2eb40745bff8341193cdcd32dcc4eaef8d8e0
7
- data.tar.gz: 3ae156afb0514a3a9d6e310b4610655f421b76e297aece23615c72598af7f4b2dfe7e6bc3ca5658a08aedd5060cba71718dfd049654662f9172ed0d7dc030638
6
+ metadata.gz: 0b535c21929255348c4938436e7a7ae498a9dd54cfb187614a2d48aaa7be75211a90ad1ec26792e4f0868385d3fe987ea82153f0264b1a140b32311d294f3782
7
+ data.tar.gz: 9d93de187c88fe2cdf93bab11246b7761a41223c1bd6909ae452aa4196b0e09926dfa974667e9e7d00a93bc79fc395766e0571daa5b7a20af7cce991eda78b3b
data/README.md CHANGED
@@ -35,75 +35,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
35
  <!-- This table is regenerated and resorted on each release -->
36
36
  <table id='team'>
37
37
  <tr>
38
- <td id='danielle-tomlinson'>
39
- <a href='https://github.com/endocrimes'>
40
- <img src='https://github.com/endocrimes.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
43
- </td>
44
- <td id='satoshi-namai'>
45
- <a href='https://github.com/ainame'>
46
- <img src='https://github.com/ainame.png' width='140px;'>
47
- </a>
48
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
49
- </td>
50
- <td id='jorge-revuelta-h'>
51
- <a href='https://github.com/minuscorp'>
52
- <img src='https://github.com/minuscorp.png' width='140px;'>
53
- </a>
54
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
55
- </td>
56
- <td id='jérôme-lacoste'>
57
- <a href='https://github.com/lacostej'>
58
- <img src='https://github.com/lacostej.png' width='140px;'>
59
- </a>
60
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
61
- </td>
62
- <td id='jan-piotrowski'>
63
- <a href='https://github.com/janpio'>
64
- <img src='https://github.com/janpio.png' width='140px;'>
38
+ <td id='helmut-januschka'>
39
+ <a href='https://github.com/hjanuschka'>
40
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
65
41
  </a>
66
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
67
43
  </td>
68
- </tr>
69
- <tr>
70
44
  <td id='roger-oba'>
71
45
  <a href='https://github.com/rogerluan'>
72
46
  <img src='https://github.com/rogerluan.png' width='140px;'>
73
47
  </a>
74
48
  <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
75
49
  </td>
76
- <td id='kohki-miki'>
77
- <a href='https://github.com/giginet'>
78
- <img src='https://github.com/giginet.png' width='140px;'>
79
- </a>
80
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
81
- </td>
82
- <td id='olivier-halligon'>
83
- <a href='https://github.com/AliSoftware'>
84
- <img src='https://github.com/AliSoftware.png' width='140px;'>
50
+ <td id='danielle-tomlinson'>
51
+ <a href='https://github.com/endocrimes'>
52
+ <img src='https://github.com/endocrimes.png' width='140px;'>
85
53
  </a>
86
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
87
55
  </td>
88
- <td id='helmut-januschka'>
89
- <a href='https://github.com/hjanuschka'>
90
- <img src='https://github.com/hjanuschka.png' width='140px;'>
56
+ <td id='stefan-natchev'>
57
+ <a href='https://github.com/snatchev'>
58
+ <img src='https://github.com/snatchev.png' width='140px;'>
91
59
  </a>
92
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
93
61
  </td>
94
- <td id='manish-rathi'>
95
- <a href='https://github.com/crazymanish'>
96
- <img src='https://github.com/crazymanish.png' width='140px;'>
62
+ <td id='kohki-miki'>
63
+ <a href='https://github.com/giginet'>
64
+ <img src='https://github.com/giginet.png' width='140px;'>
97
65
  </a>
98
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
99
67
  </td>
100
68
  </tr>
101
69
  <tr>
102
- <td id='matthew-ellis'>
103
- <a href='https://github.com/matthewellis'>
104
- <img src='https://github.com/matthewellis.png' width='140px;'>
70
+ <td id='jérôme-lacoste'>
71
+ <a href='https://github.com/lacostej'>
72
+ <img src='https://github.com/lacostej.png' width='140px;'>
105
73
  </a>
106
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
107
75
  </td>
108
76
  <td id='joshua-liebowitz'>
109
77
  <a href='https://github.com/taquitos'>
@@ -111,37 +79,69 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
111
79
  </a>
112
80
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
113
81
  </td>
114
- <td id='josh-holtz'>
115
- <a href='https://github.com/joshdholtz'>
116
- <img src='https://github.com/joshdholtz.png' width='140px;'>
117
- </a>
118
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
119
- </td>
120
82
  <td id='aaron-brager'>
121
83
  <a href='https://github.com/getaaron'>
122
84
  <img src='https://github.com/getaaron.png' width='140px;'>
123
85
  </a>
124
86
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
125
87
  </td>
88
+ <td id='andrew-mcburney'>
89
+ <a href='https://github.com/armcburney'>
90
+ <img src='https://github.com/armcburney.png' width='140px;'>
91
+ </a>
92
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
93
+ </td>
94
+ <td id='łukasz-grabowski'>
95
+ <a href='https://github.com/lucgrabowski'>
96
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
97
+ </a>
98
+ <h4 align='center'>Łukasz Grabowski</h4>
99
+ </td>
100
+ </tr>
101
+ <tr>
126
102
  <td id='manu-wallner'>
127
103
  <a href='https://github.com/milch'>
128
104
  <img src='https://github.com/milch.png' width='140px;'>
129
105
  </a>
130
106
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
131
107
  </td>
108
+ <td id='satoshi-namai'>
109
+ <a href='https://github.com/ainame'>
110
+ <img src='https://github.com/ainame.png' width='140px;'>
111
+ </a>
112
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
113
+ </td>
114
+ <td id='olivier-halligon'>
115
+ <a href='https://github.com/AliSoftware'>
116
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
117
+ </a>
118
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
119
+ </td>
120
+ <td id='jimmy-dee'>
121
+ <a href='https://github.com/jdee'>
122
+ <img src='https://github.com/jdee.png' width='140px;'>
123
+ </a>
124
+ <h4 align='center'>Jimmy Dee</h4>
125
+ </td>
126
+ <td id='max-ott'>
127
+ <a href='https://github.com/max-ott'>
128
+ <img src='https://github.com/max-ott.png' width='140px;'>
129
+ </a>
130
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
131
+ </td>
132
132
  </tr>
133
133
  <tr>
134
- <td id='luka-mirosevic'>
135
- <a href='https://github.com/lmirosevic'>
136
- <img src='https://github.com/lmirosevic.png' width='140px;'>
134
+ <td id='jorge-revuelta-h'>
135
+ <a href='https://github.com/minuscorp'>
136
+ <img src='https://github.com/minuscorp.png' width='140px;'>
137
137
  </a>
138
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
138
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
139
139
  </td>
140
- <td id='daniel-jankowski'>
141
- <a href='https://github.com/mollyIV'>
142
- <img src='https://github.com/mollyIV.png' width='140px;'>
140
+ <td id='manish-rathi'>
141
+ <a href='https://github.com/crazymanish'>
142
+ <img src='https://github.com/crazymanish.png' width='140px;'>
143
143
  </a>
144
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
145
145
  </td>
146
146
  <td id='felix-krause'>
147
147
  <a href='https://github.com/KrauseFx'>
@@ -149,51 +149,58 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
149
149
  </a>
150
150
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
151
151
  </td>
152
- <td id='stefan-natchev'>
153
- <a href='https://github.com/snatchev'>
154
- <img src='https://github.com/snatchev.png' width='140px;'>
152
+ <td id='luka-mirosevic'>
153
+ <a href='https://github.com/lmirosevic'>
154
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
155
155
  </a>
156
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
157
+ </td>
158
+ <td id='fumiya-nakamura'>
159
+ <a href='https://github.com/nafu'>
160
+ <img src='https://github.com/nafu.png' width='140px;'>
161
+ </a>
162
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
157
163
  </td>
164
+ </tr>
165
+ <tr>
158
166
  <td id='iulian-onofrei'>
159
167
  <a href='https://github.com/revolter'>
160
168
  <img src='https://github.com/revolter.png' width='140px;'>
161
169
  </a>
162
170
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
163
171
  </td>
164
- </tr>
165
- <tr>
166
- <td id='andrew-mcburney'>
167
- <a href='https://github.com/armcburney'>
168
- <img src='https://github.com/armcburney.png' width='140px;'>
172
+ <td id='maksym-grebenets'>
173
+ <a href='https://github.com/mgrebenets'>
174
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
169
175
  </a>
170
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
171
177
  </td>
172
- <td id='max-ott'>
173
- <a href='https://github.com/max-ott'>
174
- <img src='https://github.com/max-ott.png' width='140px;'>
178
+ <td id='josh-holtz'>
179
+ <a href='https://github.com/joshdholtz'>
180
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
175
181
  </a>
176
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
182
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
177
183
  </td>
178
- <td id='fumiya-nakamura'>
179
- <a href='https://github.com/nafu'>
180
- <img src='https://github.com/nafu.png' width='140px;'>
184
+ <td id='daniel-jankowski'>
185
+ <a href='https://github.com/mollyIV'>
186
+ <img src='https://github.com/mollyIV.png' width='140px;'>
181
187
  </a>
182
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
183
189
  </td>
184
- <td id='jimmy-dee'>
185
- <a href='https://github.com/jdee'>
186
- <img src='https://github.com/jdee.png' width='140px;'>
190
+ <td id='jan-piotrowski'>
191
+ <a href='https://github.com/janpio'>
192
+ <img src='https://github.com/janpio.png' width='140px;'>
187
193
  </a>
188
- <h4 align='center'>Jimmy Dee</h4>
194
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
189
195
  </td>
190
- <td id='maksym-grebenets'>
191
- <a href='https://github.com/mgrebenets'>
192
- <img src='https://github.com/mgrebenets.png' width='140px;'>
196
+ </tr>
197
+ <tr>
198
+ <td id='matthew-ellis'>
199
+ <a href='https://github.com/matthewellis'>
200
+ <img src='https://github.com/matthewellis.png' width='140px;'>
193
201
  </a>
194
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
195
203
  </td>
196
- </tr>
197
204
  </table>
198
205
 
199
206
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -0,0 +1,49 @@
1
+ module Fastlane
2
+ module Actions
3
+ class TrainerAction < Action
4
+ def self.run(params)
5
+ require "trainer"
6
+
7
+ params[:path] = Actions.lane_context[Actions::SharedValues::SCAN_GENERATED_PLIST_FILE] if Actions.lane_context[Actions::SharedValues::SCAN_GENERATED_PLIST_FILE]
8
+ params[:path] ||= Actions.lane_context[Actions::SharedValues::SCAN_DERIVED_DATA_PATH] if Actions.lane_context[Actions::SharedValues::SCAN_DERIVED_DATA_PATH]
9
+
10
+ fail_build = params[:fail_build]
11
+ resulting_paths = Trainer::TestParser.auto_convert(params)
12
+ resulting_paths.each do |path, test_successful|
13
+ UI.test_failure!("Unit tests failed") if fail_build && !test_successful
14
+ end
15
+
16
+ return resulting_paths
17
+ end
18
+
19
+ def self.description
20
+ "Convert the Xcode plist log to a JUnit report"
21
+ end
22
+
23
+ def self.detail
24
+ "Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed"
25
+ end
26
+
27
+ def self.authors
28
+ ["KrauseFx"]
29
+ end
30
+
31
+ def self.return_value
32
+ "A hash with the key being the path of the generated file, the value being if the tests were successful"
33
+ end
34
+
35
+ def self.available_options
36
+ require 'trainer'
37
+ FastlaneCore::CommanderGenerator.new.generate(Trainer::Options.available_options)
38
+ end
39
+
40
+ def self.is_supported?(platform)
41
+ %i[ios mac].include?(platform)
42
+ end
43
+
44
+ def self.category
45
+ :testing
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,9 @@
1
+ module Fastlane
2
+ module Helper
3
+ class XcodebuildFormatterHelper
4
+ def self.xcbeautify_installed?
5
+ return `which xcbeautify`.include?("xcbeautify")
6
+ end
7
+ end
8
+ end
9
+ end
@@ -15,7 +15,8 @@ module Fastlane
15
15
  :match,
16
16
  :scan,
17
17
  :gym,
18
- :precheck
18
+ :precheck,
19
+ :trainer
19
20
  ]
20
21
 
21
22
  # a list of all the config files we currently expect
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.200.0'.freeze
2
+ VERSION = '2.201.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '1.12.1'.freeze
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.200.0
20
+ // Generated with fastlane 2.201.0
@@ -260,4 +260,4 @@ public extension DeliverfileProtocol {
260
260
 
261
261
  // Please don't remove the lines below
262
262
  // They are used to detect outdated files
263
- // FastlaneRunnerAPIVersion [0.9.90]
263
+ // FastlaneRunnerAPIVersion [0.9.91]