fastlane 2.225.0 → 2.226.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1e77f8938ff5841875b3034ae791bdb74735771a039be4e5da709c92b49268b
4
- data.tar.gz: 5aebfce31f8424bd6012576c361269061b0aece5040af945ef29849fcb233cd3
3
+ metadata.gz: '0924a4ae4adee9710990cc67bf6bd16a817bb84d849d747f725e4dea8ad29548'
4
+ data.tar.gz: 3ae95f0859f02531ae57cd5381b6e5a295e64c899a487cbcea074ecfa196e646
5
5
  SHA512:
6
- metadata.gz: eff23b206daaf4616253f90a657b30ddc8dc135f6bb60f8a0880b21fcd5919da487d4b3aa799a024a60cc0324be9cbf556bc90f3f90e55b685f28fa3d5737a16
7
- data.tar.gz: f31da0896a7cf725d9bf29e22129fd1b6f9d73b383bd5048475c01fbf206a32642f2ef93252f91e0872dbb49dd18ca9365cf4a1e4b604f4802194bcdb24663f1
6
+ metadata.gz: bd1fc74b283c81699207cfc9261827986150a2066903ab12b762acb95e6ac00c5304da48b366e8817761fbe6377169f0742e392ac8fb355905b7fb94cd2af668
7
+ data.tar.gz: 1671c16656f5b3a71ba26432aba6c8491339c8c205fadf8cc968ddf576ea0b9c55ecb693a47e4d1663d11c456041d9d25b27b3ca63de6b6cce61a7556124ff02
data/README.md CHANGED
@@ -35,11 +35,11 @@ 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='olivier-halligon'>
39
- <a href='https://github.com/AliSoftware'>
40
- <img src='https://github.com/AliSoftware.png' width='140px;'>
38
+ <td id='jimmy-dee'>
39
+ <a href='https://github.com/jdee'>
40
+ <img src='https://github.com/jdee.png' width='140px;'>
41
41
  </a>
42
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
42
+ <h4 align='center'>Jimmy Dee</h4>
43
43
  </td>
44
44
  <td id='stefan-natchev'>
45
45
  <a href='https://github.com/snatchev'>
@@ -47,63 +47,69 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
47
47
  </a>
48
48
  <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
49
49
  </td>
50
- <td id='felix-krause'>
51
- <a href='https://github.com/KrauseFx'>
52
- <img src='https://github.com/KrauseFx.png' width='140px;'>
50
+ <td id='josh-holtz'>
51
+ <a href='https://github.com/joshdholtz'>
52
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
53
53
  </a>
54
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
55
55
  </td>
56
- <td id='kohki-miki'>
57
- <a href='https://github.com/giginet'>
58
- <img src='https://github.com/giginet.png' width='140px;'>
56
+ <td id='joshua-liebowitz'>
57
+ <a href='https://github.com/taquitos'>
58
+ <img src='https://github.com/taquitos.png' width='140px;'>
59
59
  </a>
60
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
61
61
  </td>
62
- <td id='luka-mirosevic'>
63
- <a href='https://github.com/lmirosevic'>
64
- <img src='https://github.com/lmirosevic.png' width='140px;'>
62
+ <td id='roger-oba'>
63
+ <a href='https://github.com/rogerluan'>
64
+ <img src='https://github.com/rogerluan.png' width='140px;'>
65
65
  </a>
66
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
67
67
  </td>
68
68
  </tr>
69
69
  <tr>
70
- <td id='matthew-ellis'>
71
- <a href='https://github.com/matthewellis'>
72
- <img src='https://github.com/matthewellis.png' width='140px;'>
70
+ <td id='satoshi-namai'>
71
+ <a href='https://github.com/ainame'>
72
+ <img src='https://github.com/ainame.png' width='140px;'>
73
73
  </a>
74
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
75
75
  </td>
76
- <td id='iulian-onofrei'>
77
- <a href='https://github.com/revolter'>
78
- <img src='https://github.com/revolter.png' width='140px;'>
76
+ <td id='daniel-jankowski'>
77
+ <a href='https://github.com/mollyIV'>
78
+ <img src='https://github.com/mollyIV.png' width='140px;'>
79
79
  </a>
80
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
80
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
81
81
  </td>
82
- <td id='jérôme-lacoste'>
83
- <a href='https://github.com/lacostej'>
84
- <img src='https://github.com/lacostej.png' width='140px;'>
82
+ <td id='aaron-brager'>
83
+ <a href='https://github.com/getaaron'>
84
+ <img src='https://github.com/getaaron.png' width='140px;'>
85
85
  </a>
86
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
87
87
  </td>
88
- <td id='fumiya-nakamura'>
89
- <a href='https://github.com/nafu'>
90
- <img src='https://github.com/nafu.png' width='140px;'>
88
+ <td id='olivier-halligon'>
89
+ <a href='https://github.com/AliSoftware'>
90
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
91
91
  </a>
92
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
93
93
  </td>
94
- <td id='maksym-grebenets'>
95
- <a href='https://github.com/mgrebenets'>
96
- <img src='https://github.com/mgrebenets.png' width='140px;'>
94
+ <td id='andrew-mcburney'>
95
+ <a href='https://github.com/armcburney'>
96
+ <img src='https://github.com/armcburney.png' width='140px;'>
97
97
  </a>
98
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
98
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
99
99
  </td>
100
100
  </tr>
101
101
  <tr>
102
- <td id='jimmy-dee'>
103
- <a href='https://github.com/jdee'>
104
- <img src='https://github.com/jdee.png' width='140px;'>
102
+ <td id='danielle-tomlinson'>
103
+ <a href='https://github.com/endocrimes'>
104
+ <img src='https://github.com/endocrimes.png' width='140px;'>
105
105
  </a>
106
- <h4 align='center'>Jimmy Dee</h4>
106
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
107
+ </td>
108
+ <td id='kohki-miki'>
109
+ <a href='https://github.com/giginet'>
110
+ <img src='https://github.com/giginet.png' width='140px;'>
111
+ </a>
112
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
107
113
  </td>
108
114
  <td id='manu-wallner'>
109
115
  <a href='https://github.com/milch'>
@@ -111,17 +117,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
111
117
  </a>
112
118
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
113
119
  </td>
114
- <td id='josh-holtz'>
115
- <a href='https://github.com/joshdholtz'>
116
- <img src='https://github.com/joshdholtz.png' width='140px;'>
120
+ <td id='luka-mirosevic'>
121
+ <a href='https://github.com/lmirosevic'>
122
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
117
123
  </a>
118
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
119
125
  </td>
120
- <td id='joshua-liebowitz'>
121
- <a href='https://github.com/taquitos'>
122
- <img src='https://github.com/taquitos.png' width='140px;'>
126
+ <td id='felix-krause'>
127
+ <a href='https://github.com/KrauseFx'>
128
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
123
129
  </a>
124
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
131
+ </td>
132
+ </tr>
133
+ <tr>
134
+ <td id='helmut-januschka'>
135
+ <a href='https://github.com/hjanuschka'>
136
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
137
+ </a>
138
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
139
+ </td>
140
+ <td id='max-ott'>
141
+ <a href='https://github.com/max-ott'>
142
+ <img src='https://github.com/max-ott.png' width='140px;'>
143
+ </a>
144
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
125
145
  </td>
126
146
  <td id='jorge-revuelta-h'>
127
147
  <a href='https://github.com/minuscorp'>
@@ -129,77 +149,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
129
149
  </a>
130
150
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
131
151
  </td>
132
- </tr>
133
- <tr>
134
152
  <td id='jan-piotrowski'>
135
153
  <a href='https://github.com/janpio'>
136
154
  <img src='https://github.com/janpio.png' width='140px;'>
137
155
  </a>
138
156
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
139
157
  </td>
140
- <td id='satoshi-namai'>
141
- <a href='https://github.com/ainame'>
142
- <img src='https://github.com/ainame.png' width='140px;'>
143
- </a>
144
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
145
- </td>
146
- <td id='helmut-januschka'>
147
- <a href='https://github.com/hjanuschka'>
148
- <img src='https://github.com/hjanuschka.png' width='140px;'>
149
- </a>
150
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
151
- </td>
152
158
  <td id='manish-rathi'>
153
159
  <a href='https://github.com/crazymanish'>
154
160
  <img src='https://github.com/crazymanish.png' width='140px;'>
155
161
  </a>
156
162
  <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
157
163
  </td>
158
- <td id='daniel-jankowski'>
159
- <a href='https://github.com/mollyIV'>
160
- <img src='https://github.com/mollyIV.png' width='140px;'>
161
- </a>
162
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
163
- </td>
164
164
  </tr>
165
165
  <tr>
166
- <td id='aaron-brager'>
167
- <a href='https://github.com/getaaron'>
168
- <img src='https://github.com/getaaron.png' width='140px;'>
166
+ <td id='łukasz-grabowski'>
167
+ <a href='https://github.com/lucgrabowski'>
168
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
169
169
  </a>
170
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
170
+ <h4 align='center'>Łukasz Grabowski</h4>
171
171
  </td>
172
- <td id='danielle-tomlinson'>
173
- <a href='https://github.com/endocrimes'>
174
- <img src='https://github.com/endocrimes.png' width='140px;'>
172
+ <td id='matthew-ellis'>
173
+ <a href='https://github.com/matthewellis'>
174
+ <img src='https://github.com/matthewellis.png' width='140px;'>
175
175
  </a>
176
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
177
177
  </td>
178
- <td id='roger-oba'>
179
- <a href='https://github.com/rogerluan'>
180
- <img src='https://github.com/rogerluan.png' width='140px;'>
178
+ <td id='jérôme-lacoste'>
179
+ <a href='https://github.com/lacostej'>
180
+ <img src='https://github.com/lacostej.png' width='140px;'>
181
181
  </a>
182
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
182
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
183
183
  </td>
184
- <td id='łukasz-grabowski'>
185
- <a href='https://github.com/lucgrabowski'>
186
- <img src='https://github.com/lucgrabowski.png' width='140px;'>
184
+ <td id='maksym-grebenets'>
185
+ <a href='https://github.com/mgrebenets'>
186
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'>Łukasz Grabowski</h4>
188
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
189
189
  </td>
190
- <td id='andrew-mcburney'>
191
- <a href='https://github.com/armcburney'>
192
- <img src='https://github.com/armcburney.png' width='140px;'>
190
+ <td id='iulian-onofrei'>
191
+ <a href='https://github.com/revolter'>
192
+ <img src='https://github.com/revolter.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
194
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
195
195
  </td>
196
196
  </tr>
197
197
  <tr>
198
- <td id='max-ott'>
199
- <a href='https://github.com/max-ott'>
200
- <img src='https://github.com/max-ott.png' width='140px;'>
198
+ <td id='fumiya-nakamura'>
199
+ <a href='https://github.com/nafu'>
200
+ <img src='https://github.com/nafu.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -99,7 +99,7 @@ module Deliver
99
99
  optional: true,
100
100
  default_value: "ios",
101
101
  verify_block: proc do |value|
102
- UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %('ios', 'appletvos', 'xros', 'osx').include?(value)
102
+ UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %w(ios appletvos xros osx).include?(value)
103
103
  end),
104
104
 
105
105
  # live version
@@ -186,7 +186,7 @@ module Fastlane
186
186
  optional: true,
187
187
  default_value: "ios",
188
188
  verify_block: proc do |value|
189
- UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %('ios', 'appletvos', 'xros', 'osx').include?(value)
189
+ UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %w(ios appletvos xros osx).include?(value)
190
190
  end),
191
191
  FastlaneCore::ConfigItem.new(key: :team_name,
192
192
  short_option: "-e",
@@ -30,9 +30,10 @@ module Fastlane
30
30
  default_value: 'HEAD',
31
31
  optional: true),
32
32
  FastlaneCore::ConfigItem.new(key: :dependencies,
33
- description: "The array of additional Fastfiles in the repository",
34
- default_value: [],
35
- optional: true),
33
+ description: "The array of additional Fastfiles in the repository",
34
+ default_value: [],
35
+ type: Array,
36
+ optional: true),
36
37
  FastlaneCore::ConfigItem.new(key: :path,
37
38
  description: "The path of the Fastfile in the repository",
38
39
  default_value: 'fastlane/Fastfile',
@@ -43,6 +44,11 @@ module Fastlane
43
44
  optional: true),
44
45
  FastlaneCore::ConfigItem.new(key: :cache_path,
45
46
  description: "The path to a directory where the repository should be cloned into. Defaults to `nil`, which causes the repository to be cloned on every call, to a temporary directory",
47
+ optional: true),
48
+ FastlaneCore::ConfigItem.new(key: :git_extra_headers,
49
+ description: "An optional list of custom HTTP headers to access the git repo (`Authorization: Basic <YOUR BASE64 KEY>`, `Cache-Control: no-cache`, etc.)",
50
+ default_value: [],
51
+ type: Array,
46
52
  optional: true)
47
53
  ]
48
54
  end
@@ -68,7 +74,8 @@ module Fastlane
68
74
  branch: "HEAD", # The branch to checkout on the repository.
69
75
  path: "fastlane/Fastfile", # The path of the Fastfile in the repository.
70
76
  version: [">= 1.1.0", "< 2.0.0"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints.
71
- cache_path: "~/.cache/fastlane/imported" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls.
77
+ cache_path: "~/.cache/fastlane/imported", # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls.
78
+ git_extra_headers: ["Authorization: Basic <YOUR BASE64 KEY>", "Cache-Control: no-cache"]
72
79
  )'
73
80
  ]
74
81
  end
@@ -83,7 +83,7 @@ module Fastlane
83
83
  optional: true,
84
84
  default_value: "ios",
85
85
  verify_block: proc do |value|
86
- UI.user_error!("The platform can only be ios, osx, xros or appletvos") unless %('osx', ios', 'appletvos', 'xros').include?(value)
86
+ UI.user_error!("The platform can only be ios, osx, xros or appletvos") unless %w(osx ios appletvos xros).include?(value)
87
87
  end),
88
88
  FastlaneCore::ConfigItem.new(key: :initial_build_number,
89
89
  env_name: "INITIAL_BUILD_NUMBER",
@@ -58,7 +58,7 @@ module Fastlane
58
58
  optional: true,
59
59
  default_value: platform.empty? ? "ios" : platform,
60
60
  verify_block: proc do |value|
61
- UI.user_error!("The platform can only be ios or mac") unless %('ios', 'mac').include?(value)
61
+ UI.user_error!("The platform can only be ios or mac") unless %w(ios mac).include?(value)
62
62
  end),
63
63
  FastlaneCore::ConfigItem.new(key: :udid,
64
64
  env_name: "FL_REGISTER_DEVICE_UDID",
@@ -160,7 +160,7 @@ module Fastlane
160
160
  optional: true,
161
161
  default_value: platform.empty? ? "ios" : platform,
162
162
  verify_block: proc do |value|
163
- UI.user_error!("The platform can only be ios or mac") unless %('ios', 'mac').include?(value)
163
+ UI.user_error!("The platform can only be ios or mac") unless %w(ios mac).include?(value)
164
164
  end)
165
165
  ]
166
166
  end
@@ -98,6 +98,14 @@ module Fastlane
98
98
  [key, value]
99
99
  when :tags
100
100
  [key, value.join(',')]
101
+ when :folder_name
102
+ [key, value]
103
+ when :landing_page_mode
104
+ [key, value]
105
+ when :upload_to_saucelabs
106
+ [key, value]
107
+ when :platform
108
+ [key, value]
101
109
  else
102
110
  UI.user_error!("Unknown parameter: #{key}")
103
111
  end
@@ -237,7 +245,7 @@ module Fastlane
237
245
  FastlaneCore::ConfigItem.new(key: :custom,
238
246
  optional: true,
239
247
  env_name: "FL_TESTFAIRY_CUSTOM",
240
- description: "Array of custom options. Contact support@testfairy.com for more information",
248
+ description: "Array of custom options. Contact support for more information",
241
249
  default_value: ''),
242
250
  FastlaneCore::ConfigItem.new(key: :timeout,
243
251
  env_name: "FL_TESTFAIRY_TIMEOUT",
@@ -249,7 +257,33 @@ module Fastlane
249
257
  env_name: "FL_TESTFAIRY_TAGS",
250
258
  description: "Custom tags that can be used to organize your builds",
251
259
  type: Array,
252
- default_value: [])
260
+ default_value: []),
261
+ FastlaneCore::ConfigItem.new(key: :folder_name,
262
+ optional: true,
263
+ env_name: "FL_TESTFAIRY_FOLDER_NAME",
264
+ description: "Name of the dashboard folder that contains this app",
265
+ default_value: ''),
266
+ FastlaneCore::ConfigItem.new(key: :landing_page_mode,
267
+ optional: true,
268
+ env_name: "FL_TESTFAIRY_LANDING_PAGE_MODE",
269
+ description: "Visibility of build landing after upload. Can be 'open' or 'closed'",
270
+ default_value: 'open',
271
+ verify_block: proc do |value|
272
+ UI.user_error!("The landing page mode can only be open or closed") unless %w(open closed).include?(value)
273
+ end),
274
+ FastlaneCore::ConfigItem.new(key: :upload_to_saucelabs,
275
+ optional: true,
276
+ env_name: "FL_TESTFAIRY_UPLOAD_TO_SAUCELABS",
277
+ description: "Upload file directly to Sauce Labs. It can be 'on' or 'off'",
278
+ default_value: 'off',
279
+ verify_block: proc do |value|
280
+ UI.user_error!("The upload to Sauce Labs can only be on or off") unless %w(on off).include?(value)
281
+ end),
282
+ FastlaneCore::ConfigItem.new(key: :platform,
283
+ optional: true,
284
+ env_name: "FL_TESTFAIRY_PLATFORM",
285
+ description: "Use if upload build is not iOS or Android. Contact support for more information",
286
+ default_value: '')
253
287
  ]
254
288
  end
255
289
 
@@ -278,7 +278,8 @@ module Fastlane
278
278
  # @param version [String, Array] Version requirement for repo tags
279
279
  # @param dependencies [Array] An optional array of additional Fastfiles in the repository
280
280
  # @param cache_path [String] An optional path to a directory where the repository should be cloned into
281
- def import_from_git(url: nil, branch: 'HEAD', path: 'fastlane/Fastfile', version: nil, dependencies: [], cache_path: nil) # rubocop:disable Metrics/PerceivedComplexity
281
+ # @param git_extra_headers [Array] An optional array of custom HTTP headers to access the git repo (`Authorization: Basic <YOUR BASE64 KEY>`, `Cache-Control: no-cache`, etc.)
282
+ def import_from_git(url: nil, branch: 'HEAD', path: 'fastlane/Fastfile', version: nil, dependencies: [], cache_path: nil, git_extra_headers: []) # rubocop:disable Metrics/PerceivedComplexity
282
283
  UI.user_error!("Please pass a path to the `import_from_git` action") if url.to_s.length == 0
283
284
 
284
285
  Actions.execute_action('import_from_git') do
@@ -297,8 +298,6 @@ module Fastlane
297
298
  import_block = proc do |target_path|
298
299
  clone_folder = File.join(target_path, repo_name)
299
300
 
300
- branch_option = "--branch #{branch}" if branch != 'HEAD'
301
-
302
301
  checkout_dependencies = dependencies.map(&:shellescape).join(" ")
303
302
 
304
303
  # If the current call is eligible for caching, we check out all the
@@ -309,12 +308,16 @@ module Fastlane
309
308
  if Dir[clone_folder].empty?
310
309
  UI.message("Cloning remote git repo...")
311
310
  Helper.with_env_values('GIT_TERMINAL_PROMPT' => '0') do
311
+ command = ['git', 'clone', url, clone_folder, '--no-checkout']
312
312
  # When using cached clones, we need the entire repository history
313
313
  # so we can switch between tags or branches instantly, or else,
314
314
  # it would defeat the caching's purpose.
315
- depth = is_eligible_for_caching ? "" : "--depth 1"
316
-
317
- Actions.sh("git clone #{url.shellescape} #{clone_folder.shellescape} #{depth} --no-checkout #{branch_option}")
315
+ command += ['--depth', '1'] unless is_eligible_for_caching
316
+ command += ['--branch', branch] unless branch == 'HEAD'
317
+ git_extra_headers.each do |header|
318
+ command += ['--config', "http.extraHeader=#{header}"]
319
+ end
320
+ Actions.sh(*command)
318
321
  end
319
322
  end
320
323
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.225.0'.freeze
2
+ VERSION = '2.226.0'.freeze
3
3
  SUMMARY = "The easiest way to build and release mobile apps.".freeze
4
4
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
5
5
  MINIMUM_XCODE_RELEASE = "7.0".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.225.0
20
+ // Generated with fastlane 2.226.0
@@ -272,4 +272,4 @@ public extension DeliverfileProtocol {
272
272
 
273
273
  // Please don't remove the lines below
274
274
  // They are used to detect outdated files
275
- // FastlaneRunnerAPIVersion [0.9.131]
275
+ // FastlaneRunnerAPIVersion [0.9.132]
@@ -11602,9 +11602,13 @@ public func teamName() {
11602
11602
  - autoUpdate: Allows an easy upgrade of all users to the current version. To enable set to 'on'
11603
11603
  - notify: Send email to testers
11604
11604
  - options: Array of options (shake,video_only_wifi,anonymous)
11605
- - custom: Array of custom options. Contact support@testfairy.com for more information
11605
+ - custom: Array of custom options. Contact support for more information
11606
11606
  - timeout: Request timeout in seconds
11607
11607
  - tags: Custom tags that can be used to organize your builds
11608
+ - folderName: Name of the dashboard folder that contains this app
11609
+ - landingPageMode: Visibility of build landing after upload. Can be 'open' or 'closed'
11610
+ - uploadToSaucelabs: Upload file directly to Sauce Labs. It can be 'on' or 'off'
11611
+ - platform: Use if upload build is not iOS or Android. Contact support for more information
11608
11612
 
11609
11613
  You can retrieve your API key on [your settings page](https://free.testfairy.com/settings/)
11610
11614
  */
@@ -11621,7 +11625,11 @@ public func testfairy(apiKey: String,
11621
11625
  options: [String] = [],
11622
11626
  custom: String = "",
11623
11627
  timeout: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
11624
- tags: [String] = [])
11628
+ tags: [String] = [],
11629
+ folderName: String = "",
11630
+ landingPageMode: String = "open",
11631
+ uploadToSaucelabs: String = "off",
11632
+ platform: String = "")
11625
11633
  {
11626
11634
  let apiKeyArg = RubyCommand.Argument(name: "api_key", value: apiKey, type: nil)
11627
11635
  let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
@@ -11637,6 +11645,10 @@ public func testfairy(apiKey: String,
11637
11645
  let customArg = RubyCommand.Argument(name: "custom", value: custom, type: nil)
11638
11646
  let timeoutArg = timeout.asRubyArgument(name: "timeout", type: nil)
11639
11647
  let tagsArg = RubyCommand.Argument(name: "tags", value: tags, type: nil)
11648
+ let folderNameArg = RubyCommand.Argument(name: "folder_name", value: folderName, type: nil)
11649
+ let landingPageModeArg = RubyCommand.Argument(name: "landing_page_mode", value: landingPageMode, type: nil)
11650
+ let uploadToSaucelabsArg = RubyCommand.Argument(name: "upload_to_saucelabs", value: uploadToSaucelabs, type: nil)
11651
+ let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
11640
11652
  let array: [RubyCommand.Argument?] = [apiKeyArg,
11641
11653
  ipaArg,
11642
11654
  apkArg,
@@ -11650,7 +11662,11 @@ public func testfairy(apiKey: String,
11650
11662
  optionsArg,
11651
11663
  customArg,
11652
11664
  timeoutArg,
11653
- tagsArg]
11665
+ tagsArg,
11666
+ folderNameArg,
11667
+ landingPageModeArg,
11668
+ uploadToSaucelabsArg,
11669
+ platformArg]
11654
11670
  let args: [RubyCommand.Argument] = array
11655
11671
  .filter { $0?.value != nil }
11656
11672
  .compactMap { $0 }
@@ -13861,4 +13877,4 @@ public let snapshotfile: Snapshotfile = .init()
13861
13877
 
13862
13878
  // Please don't remove the lines below
13863
13879
  // They are used to detect outdated files
13864
- // FastlaneRunnerAPIVersion [0.9.184]
13880
+ // FastlaneRunnerAPIVersion [0.9.185]
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.225.0
20
+ // Generated with fastlane 2.226.0
@@ -212,4 +212,4 @@ public extension GymfileProtocol {
212
212
 
213
213
  // Please don't remove the lines below
214
214
  // They are used to detect outdated files
215
- // FastlaneRunnerAPIVersion [0.9.134]
215
+ // FastlaneRunnerAPIVersion [0.9.135]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.225.0
20
+ // Generated with fastlane 2.226.0
@@ -232,4 +232,4 @@ public extension MatchfileProtocol {
232
232
 
233
233
  // Please don't remove the lines below
234
234
  // They are used to detect outdated files
235
- // FastlaneRunnerAPIVersion [0.9.128]
235
+ // FastlaneRunnerAPIVersion [0.9.129]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.225.0
20
+ // Generated with fastlane 2.226.0
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.127]
55
+ // FastlaneRunnerAPIVersion [0.9.128]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.225.0
20
+ // Generated with fastlane 2.226.0
@@ -324,4 +324,4 @@ public extension ScanfileProtocol {
324
324
 
325
325
  // Please don't remove the lines below
326
326
  // They are used to detect outdated files
327
- // FastlaneRunnerAPIVersion [0.9.139]
327
+ // FastlaneRunnerAPIVersion [0.9.140]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.225.0
20
+ // Generated with fastlane 2.226.0
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.129]
99
+ // FastlaneRunnerAPIVersion [0.9.130]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.225.0
20
+ // Generated with fastlane 2.226.0
@@ -208,4 +208,4 @@ public extension SnapshotfileProtocol {
208
208
 
209
209
  // Please don't remove the lines below
210
210
  // They are used to detect outdated files
211
- // FastlaneRunnerAPIVersion [0.9.123]
211
+ // FastlaneRunnerAPIVersion [0.9.124]
@@ -84,7 +84,7 @@ module Precheck
84
84
  optional: true,
85
85
  default_value: "ios",
86
86
  verify_block: proc do |value|
87
- UI.user_error!("The platform can only be ios, appletvos, or osx") unless %('ios', 'appletvos', 'osx').include?(value)
87
+ UI.user_error!("The platform can only be ios, appletvos, or osx") unless %w(ios appletvos osx).include?(value)
88
88
  end),
89
89
  FastlaneCore::ConfigItem.new(key: :default_rule_level,
90
90
  short_option: "-r",
@@ -54,7 +54,7 @@ module Produce
54
54
  optional: true,
55
55
  default_value: "ios",
56
56
  verify_block: proc do |value|
57
- UI.user_error!("The platform can only be ios or osx") unless %('ios', 'osx', 'tvos').include?(value)
57
+ UI.user_error!("The platform can only be ios or osx") unless %w(ios osx tvos).include?(value)
58
58
  end),
59
59
  FastlaneCore::ConfigItem.new(key: :platforms,
60
60
  short_option: "-J",
@@ -106,14 +106,14 @@ module Supply
106
106
  end
107
107
  end
108
108
 
109
- def fetch_track_and_release!(track, version_code, status = nil)
109
+ def fetch_track_and_release!(track, version_code, statuses = nil)
110
110
  tracks = client.tracks(track)
111
111
  return nil, nil if tracks.empty?
112
112
 
113
113
  track = tracks.first
114
114
  releases = track.releases
115
115
 
116
- releases = releases.select { |r| r.status == status } if status
116
+ releases = releases.select { |r| statuses.include?(r.status) } unless statuses.nil? || statuses.empty?
117
117
  releases = releases.select { |r| (r.version_codes || []).map(&:to_s).include?(version_code.to_s) } if version_code
118
118
 
119
119
  if releases.size > 1
@@ -124,7 +124,7 @@ module Supply
124
124
  end
125
125
 
126
126
  def update_rollout
127
- track, release = fetch_track_and_release!(Supply.config[:track], Supply.config[:version_code], Supply::ReleaseStatus::IN_PROGRESS)
127
+ track, release = fetch_track_and_release!(Supply.config[:track], Supply.config[:version_code], [Supply::ReleaseStatus::IN_PROGRESS, Supply::ReleaseStatus::DRAFT])
128
128
  UI.user_error!("Unable to find the requested track - '#{Supply.config[:track]}'") unless track
129
129
  UI.user_error!("Unable to find the requested release on track - '#{Supply.config[:track]}'") unless release
130
130
 
@@ -135,7 +135,11 @@ module Supply
135
135
  if track && release
136
136
  completed = Supply.config[:rollout].to_f == 1
137
137
  release.user_fraction = completed ? nil : Supply.config[:rollout]
138
- release.status = Supply::ReleaseStatus::COMPLETED if completed
138
+ if Supply.config[:release_status]
139
+ release.status = Supply.config[:release_status]
140
+ else
141
+ release.status = completed ? Supply::ReleaseStatus::COMPLETED : Supply::ReleaseStatus::IN_PROGRESS
142
+ end
139
143
 
140
144
  # Deleted other version codes if completed because only allowed on completed version in a release
141
145
  track.releases.delete_if { |r| !(r.version_codes || []).map(&:to_s).include?(version_code) } if completed
metadata CHANGED
@@ -1,39 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.225.0
4
+ version: 2.226.0
5
5
  platform: ruby
6
6
  authors:
7
- - Andrew McBurney
7
+ - Roger Oba
8
+ - Luka Mirosevic
9
+ - Daniel Jankowski
10
+ - Max Ott
11
+ - Joshua Liebowitz
12
+ - Jorge Revuelta H
8
13
  - Łukasz Grabowski
9
- - Jimmy Dee
10
- - Manish Rathi
11
- - Aaron Brager
12
- - Satoshi Namai
13
14
  - Danielle Tomlinson
14
- - Jérôme Lacoste
15
- - Jorge Revuelta H
16
- - Helmut Januschka
17
- - Joshua Liebowitz
18
- - Felix Krause
19
- - Stefan Natchev
15
+ - Aaron Brager
16
+ - Jan Piotrowski
20
17
  - Iulian Onofrei
21
- - Roger Oba
22
- - Manu Wallner
23
- - Max Ott
24
- - Olivier Halligon
18
+ - Kohki Miki
25
19
  - Maksym Grebenets
20
+ - Stefan Natchev
21
+ - Andrew McBurney
22
+ - Jimmy Dee
23
+ - Matthew Ellis
24
+ - Satoshi Namai
25
+ - Felix Krause
26
+ - Helmut Januschka
27
+ - Manish Rathi
26
28
  - Fumiya Nakamura
27
- - Jan Piotrowski
28
- - Luka Mirosevic
29
29
  - Josh Holtz
30
- - Kohki Miki
31
- - Matthew Ellis
32
- - Daniel Jankowski
30
+ - Jérôme Lacoste
31
+ - Manu Wallner
32
+ - Olivier Halligon
33
33
  autorequire:
34
34
  bindir: bin
35
35
  cert_chain: []
36
- date: 2024-10-21 00:00:00.000000000 Z
36
+ date: 2024-12-10 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: addressable
@@ -727,14 +727,14 @@ dependencies:
727
727
  requirements:
728
728
  - - "~>"
729
729
  - !ruby/object:Gem::Version
730
- version: 0.3.0
730
+ version: 0.4.0
731
731
  type: :runtime
732
732
  prerelease: false
733
733
  version_requirements: !ruby/object:Gem::Requirement
734
734
  requirements:
735
735
  - - "~>"
736
736
  - !ruby/object:Gem::Version
737
- version: 0.3.0
737
+ version: 0.4.0
738
738
  description: The easiest way to automate beta deployments and releases for your iOS
739
739
  and Android apps
740
740
  email: