fastlane 2.225.0 → 2.226.0

Sign up to get free protection for your applications and to get access to all the features.
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: