fastlane 2.70.2 → 2.70.3

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
  SHA1:
3
- metadata.gz: 83ac3d5b30435c890c6c68faeb4a41bfe3acb424
4
- data.tar.gz: 39c65833f75f48ef0131faf206683adcacd9127c
3
+ metadata.gz: db2a79f0ea8502192be084f553b7611f25f83314
4
+ data.tar.gz: 99effa647bdaaab8564baded99feaa20306d10f9
5
5
  SHA512:
6
- metadata.gz: 12b67636cf96d5debabd98bf4b2d53fce327af50830c504b80fda8aeb798c88fd6f69c242eabc200db9176eddeeb67cc789bcf062a65a0e95f74fd92b330753a
7
- data.tar.gz: aadae44146f183fd6913c07b3b65f748768fee1e11756df9727c0681eb8f9e3e089261e23c58b20ed0a0e6f743fd5fab446b678fc51e0d3ebc071b84c2fb4f98
6
+ metadata.gz: e55c92ffa57592da478a44ebcb77cebdcfd7e9e32324daf6e59d4014e5c5e0da4a4659038404d0980b97d74fafc17df87d581c9ac71f229ee09c41060ada72c1
7
+ data.tar.gz: 9ea6bc9cde31f71aad51cfc0fe2af49fa6caccf818c053d1f1fa8619571a7f76257ddb1c87e0687a20ced19912727f0f4c57fed9538c7a6f8f0a44bca7b19835
@@ -5,6 +5,7 @@ module Fastlane
5
5
  end
6
6
 
7
7
  class DownloadDsymsAction < Action
8
+ # rubocop:disable Metrics/PerceivedComplexity
8
9
  def self.run(params)
9
10
  require 'spaceship'
10
11
  require 'net/http'
@@ -29,8 +30,12 @@ module Fastlane
29
30
  # Set version if it is latest
30
31
  if version == 'latest'
31
32
  # Try to grab the edit version first, else fallback to live version
33
+ UI.message("Looking for latest version...")
32
34
  latest_version = app.edit_version(platform: platform) || app.live_version(platform: platform)
33
- version = nil
35
+
36
+ UI.user_error!("Could not find latest version for your app, please try setting a specific version") if latest_version.version.nil?
37
+
38
+ version = latest_version.version
34
39
  build_number = latest_version.build_version
35
40
  end
36
41
 
@@ -82,6 +87,7 @@ module Fastlane
82
87
  UI.error("No dSYM files found on iTunes Connect - this usually happens when no recompling happened yet")
83
88
  end
84
89
  end
90
+ # rubocop:enable Metrics/PerceivedComplexity
85
91
 
86
92
  def self.write_dsym(data, bundle_id, train_number, build_number, output_directory)
87
93
  file_name = "#{bundle_id}-#{train_number}-#{build_number}.dSYM.zip"
@@ -34,7 +34,7 @@ module Fastlane
34
34
  default_value: 'fastlane/Fastfile',
35
35
  optional: true),
36
36
  FastlaneCore::ConfigItem.new(key: :version,
37
- description: "The version to checkout on the respository. Optimistic operator can be used to select the latest version within constraints",
37
+ description: "The version to checkout on the respository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints",
38
38
  default_value: nil,
39
39
  optional: true)
40
40
  ]
@@ -54,7 +54,13 @@ module Fastlane
54
54
  url: "git@github.com:fastlane/fastlane.git", # The URL of the repository to import the Fastfile from.
55
55
  branch: "HEAD", # The branch to checkout on the repository. Defaults to `HEAD`.
56
56
  path: "fastlane/Fastfile" # The path of the Fastfile in the repository. Defaults to `fastlane/Fastfile`.
57
- version: "~> 1.0.0" #The version to checkout on the respository. Optimistic operator can be used to select the latest version within constraints.
57
+ version: "~> 1.0.0" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints.
58
+ )',
59
+ 'import_from_git(
60
+ url: "git@github.com:fastlane/fastlane.git", # The URL of the repository to import the Fastfile from.
61
+ branch: "HEAD", # The branch to checkout on the repository. Defaults to `HEAD`.
62
+ path: "fastlane/Fastfile" # The path of the Fastfile in the repository. Defaults to `fastlane/Fastfile`.
63
+ 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.
58
64
  )'
59
65
  ]
60
66
  end
@@ -1,3 +1,5 @@
1
+ require "rubygems/requirement"
2
+
1
3
  module Fastlane
2
4
  class FastFile
3
5
  # Stores all relevant information from the currently running process
@@ -229,7 +231,7 @@ module Fastlane
229
231
  # @param url [String] The git URL to clone the repository from
230
232
  # @param branch [String] The branch to checkout in the repository
231
233
  # @param path [String] The path to the Fastfile
232
- # @param verion [String] Version of the required Fastlane version
234
+ # @param version [String, Array] Version requirement for repo tags
233
235
  def import_from_git(url: nil, branch: 'HEAD', path: 'fastlane/Fastfile', version: nil)
234
236
  UI.user_error!("Please pass a path to the `import_from_git` action") if url.to_s.length == 0
235
237
 
@@ -251,13 +253,10 @@ module Fastlane
251
253
  Actions.sh("GIT_TERMINAL_PROMPT=0 git clone '#{url}' '#{clone_folder}' --depth 1 -n #{branch_option}")
252
254
 
253
255
  unless version.nil?
254
- git_tags = fetch_remote_tags(folder: clone_folder)
255
-
256
- # Separate version from optimistic operator
257
- version_number = version(version_string: version)
258
- operator = operator(version_string: version)
259
-
260
- checkout_param = checkout_param_for_operator(operator: operator, version: version_number, git_tags: git_tags)
256
+ req = Gem::Requirement.new(version)
257
+ all_tags = fetch_remote_tags(folder: clone_folder)
258
+ checkout_param = all_tags.select { |t| req =~ FastlaneCore::TagVersion.new(t) }.last
259
+ UI.user_error! "No tag found matching #{version.inspect}" if checkout_param.nil?
261
260
  end
262
261
 
263
262
  Actions.sh("cd '#{clone_folder}' && git checkout #{checkout_param} '#{path}'")
@@ -293,75 +292,10 @@ module Fastlane
293
292
  git_tags_string = Actions.sh("cd '#{folder}' && git tag -l")
294
293
  git_tags = git_tags_string.split("\n")
295
294
 
296
- # Delete tags that are not a real version number
297
- git_tags.delete_if { |tag| Gem::Version.correct?(tag) != 0 }
298
-
299
295
  # Sort tags based on their version number
300
- git_tags.sort_by { |tag| Gem::Version.new(tag) }
301
-
302
296
  return git_tags
303
- end
304
-
305
- def checkout_param_for_operator(operator: nil, version: nil, git_tags: nil)
306
- # ~> should select the latest version withing constraints.
307
- # -> should select a specific version without fallback.
308
- if operator == "~>"
309
- return checkout_param_twiddle_wakka(version: version, git_tags: git_tags)
310
-
311
- elsif operator == "->" || operator.nil?
312
- return checkout_param_specific_version(version: version, git_tags: git_tags)
313
-
314
- else
315
- UI.user_error!("The specified operator \"#{operator}\" in \"#{version}\" is unknown. Please use one of these '~> ->'")
316
- end
317
- end
318
-
319
- def checkout_param_specific_version(version: nil, git_tags: nil)
320
- # Search matching version in array
321
- matching_git_tags = git_tags.select do |tag|
322
- tag == version
323
- end
324
-
325
- UI.user_error!("The specified version \"#{version}\" doesn't exist") if matching_git_tags.count == 0
326
- return matching_git_tags.last
327
- end
328
-
329
- def checkout_param_twiddle_wakka(version: nil, git_tags: nil)
330
- # Drop last specified digit in version
331
- last_dot_index = version.rindex('.')
332
- version_range = version[0..last_dot_index - 1]
333
-
334
- # Search matching version in array
335
- matching_git_tags = git_tags.select do |tag|
336
- tag.start_with?(version_range)
337
- end
338
-
339
- UI.user_error!("No version found within the \"#{version_range}.*\" range") if matching_git_tags.count == 0
340
-
341
- return matching_git_tags.last
342
- end
343
-
344
- def operator(version_string: nil)
345
- version_info = version_range_info(version_string: version_string)
346
-
347
- # version_info will have 2 elements if an optimistic operator is specified.
348
- if version_info.count > 1
349
-
350
- # Optimistic operator is always the first part. e.g.: ["~>", "2.0.0"]
351
- return version_info.first
352
- end
353
-
354
- return nil
355
- end
356
-
357
- def version(version_string: nil)
358
- version_info = version_range_info(version_string: version_string)
359
- return version_info.last
360
- end
361
-
362
- def version_range_info(version_string: nil)
363
- # Separate version from optimistic operator
364
- return version_string.split(" ")
297
+ .select { |tag| FastlaneCore::TagVersion.correct?(tag) }
298
+ .sort_by { |tag| FastlaneCore::TagVersion.new(tag) }
365
299
  end
366
300
 
367
301
  #####################################################
@@ -174,7 +174,8 @@ module Fastlane
174
174
  return_value = ""
175
175
  end
176
176
 
177
- return JSON.generate(return_value.to_s)
177
+ # quirks_mode because sometimes the built-in library is used for some folks and that needs quirks_mode: true
178
+ return JSON.generate(return_value.to_s, quirks_mode: true)
178
179
  end
179
180
 
180
181
  def process_value_as_array_of_strings(return_value: nil)
@@ -182,6 +183,7 @@ module Fastlane
182
183
  return_value = []
183
184
  end
184
185
 
186
+ # quirks_mode shouldn't be required for real objects
185
187
  return JSON.generate(return_value)
186
188
  end
187
189
 
@@ -190,6 +192,7 @@ module Fastlane
190
192
  return_value = {}
191
193
  end
192
194
 
195
+ # quirks_mode shouldn't be required for real objects
193
196
  return JSON.generate(return_value)
194
197
  end
195
198
 
@@ -198,7 +201,8 @@ module Fastlane
198
201
  return_value = false
199
202
  end
200
203
 
201
- return JSON.generate(return_value)
204
+ # quirks_mode because sometimes the built-in library is used for some folks and that needs quirks_mode: true
205
+ return JSON.generate(return_value.to_s, quirks_mode: true)
202
206
  end
203
207
 
204
208
  def process_value_as_int(return_value: nil)
@@ -206,7 +210,8 @@ module Fastlane
206
210
  return_value = 0
207
211
  end
208
212
 
209
- return JSON.generate(return_value)
213
+ # quirks_mode because sometimes the built-in library is used for some folks and that needs quirks_mode: true
214
+ return JSON.generate(return_value.to_s, quirks_mode: true)
210
215
  end
211
216
  end
212
217
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.70.2'.freeze
2
+ VERSION = '2.70.3'.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 = '0.49.1'.freeze
@@ -11,4 +11,4 @@ class Deliverfile: DeliverfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Gymfile: GymfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Matchfile: MatchfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Precheckfile: PrecheckfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Scanfile: ScanfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Screengrabfile: ScreengrabfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Snapshotfile: SnapshotfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -46,6 +46,7 @@ require 'fastlane_core/analytics/action_launch_context'
46
46
  require 'fastlane_core/analytics/analytics_event_builder'
47
47
  require 'fastlane_core/analytics/analytics_ingester_client'
48
48
  require 'fastlane_core/analytics/analytics_session'
49
+ require 'fastlane_core/tag_version'
49
50
 
50
51
  # Third Party code
51
52
  require 'colored'
@@ -23,6 +23,9 @@ module FastlaneCore
23
23
  # [Boolean] is false by default. If set to true, also string values will not be asked to the user
24
24
  attr_accessor :optional
25
25
 
26
+ # [Boolean] is false by default. If set to true, type of the parameter will not be validated.
27
+ attr_accessor :skip_type_validation
28
+
26
29
  # [Array] array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
27
30
  attr_accessor :conflicting_options
28
31
 
@@ -53,6 +56,7 @@ module FastlaneCore
53
56
  # You have to raise a specific exception if something goes wrong. Append .red after the string
54
57
  # @param is_string *DEPRECATED: Use `type` instead* (Boolean) is that parameter a string? Defaults to true. If it's true, the type string will be verified.
55
58
  # @param type (Class) the data type of this config item. Takes precedence over `is_string`. Use `:shell_string` to allow types `String`, `Hash` and `Array` that will be converted to shell-escaped strings
59
+ # @param skip_type_validation (Boolean) is false by default. If set to true, type of the parameter will not be validated.
56
60
  # @param optional (Boolean) is false by default. If set to true, also string values will not be asked to the user
57
61
  # @param conflicting_options ([]) array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
58
62
  # @param conflict_block an optional block which is called when options conflict happens
@@ -0,0 +1,24 @@
1
+ require "rubygems/version"
2
+
3
+ module FastlaneCore
4
+ # Utility class to construct a Gem::Version from a tag.
5
+ # Accepts vX.Y.Z and X.Y.Z.
6
+ class TagVersion < Gem::Version
7
+ class << self
8
+ def correct?(tag)
9
+ superclass.correct?(version_number_from_tag(tag))
10
+ end
11
+
12
+ # Gem::Version.new barfs on things like "v0.1.0", which is the style
13
+ # generated by the rake release task. Just strip off any initial v
14
+ # to generate a Gem::Version from a tag.
15
+ def version_number_from_tag(tag)
16
+ tag.sub(/^v/, "")
17
+ end
18
+ end
19
+
20
+ def initialize(tag)
21
+ super(self.class.version_number_from_tag(tag))
22
+ end
23
+ end
24
+ end
@@ -44,7 +44,7 @@ module Supply
44
44
  IMAGES_TYPES.each do |image_type|
45
45
  if ['featureGraphic'].include?(image_type)
46
46
  # we don't get all files in full resolution :(
47
- UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing feature graphic. Please copy your feature graphic to `metadata/android/en-US/images/featureGraphic.png`")
47
+ UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing feature graphic. Please copy your feature graphic to `metadata/android/#{listing.language}/images/featureGraphic.png`")
48
48
  next
49
49
  end
50
50
 
@@ -71,7 +71,7 @@ module Supply
71
71
  FileUtils.mkdir_p(File.join(containing, IMAGES_FOLDER_NAME, screenshot_type))
72
72
  end
73
73
 
74
- UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing screenshots. Please copy your screenshots into `metadata/android/en-US/images/`")
74
+ UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing screenshots. Please copy your screenshots into `metadata/android/#{listing.language}/images/`")
75
75
  end
76
76
 
77
77
  def store_apk_listing(apk_listing)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.70.2
4
+ version: 2.70.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-12-20 00:00:00.000000000 Z
18
+ date: 2017-12-21 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier
@@ -677,14 +677,14 @@ dependencies:
677
677
  requirements:
678
678
  - - "~>"
679
679
  - !ruby/object:Gem::Version
680
- version: 0.8.7.4
680
+ version: 0.9.11
681
681
  type: :development
682
682
  prerelease: false
683
683
  version_requirements: !ruby/object:Gem::Requirement
684
684
  requirements:
685
685
  - - "~>"
686
686
  - !ruby/object:Gem::Version
687
- version: 0.8.7.4
687
+ version: 0.9.11
688
688
  - !ruby/object:Gem::Dependency
689
689
  name: webmock
690
690
  requirement: !ruby/object:Gem::Requirement
@@ -829,7 +829,6 @@ files:
829
829
  - deliver/lib/deliver/upload_price_tier.rb
830
830
  - deliver/lib/deliver/upload_screenshots.rb
831
831
  - fastlane/README.md
832
- - fastlane/lib/.DS_Store
833
832
  - fastlane/lib/assets/ActionDetails.md.erb
834
833
  - fastlane/lib/assets/Actions.md.erb
835
834
  - fastlane/lib/assets/AppfileTemplate
@@ -852,7 +851,6 @@ files:
852
851
  - fastlane/lib/fastlane/.DS_Store
853
852
  - fastlane/lib/fastlane/action.rb
854
853
  - fastlane/lib/fastlane/action_collector.rb
855
- - fastlane/lib/fastlane/actions/.DS_Store
856
854
  - fastlane/lib/fastlane/actions/README.md
857
855
  - fastlane/lib/fastlane/actions/actions_helper.rb
858
856
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1088,7 +1086,6 @@ files:
1088
1086
  - fastlane/lib/fastlane/fast_file.rb
1089
1087
  - fastlane/lib/fastlane/fastlane_require.rb
1090
1088
  - fastlane/lib/fastlane/features.rb
1091
- - fastlane/lib/fastlane/helper/.DS_Store
1092
1089
  - fastlane/lib/fastlane/helper/README.md
1093
1090
  - fastlane/lib/fastlane/helper/adb_helper.rb
1094
1091
  - fastlane/lib/fastlane/helper/cocoapod_helper.rb
@@ -1165,6 +1162,7 @@ files:
1165
1162
  - fastlane/swift/Fastlane.swift
1166
1163
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
1167
1164
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
1165
+ - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/liebowitz.xcuserdatad/UserInterfaceState.xcuserstate
1168
1166
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
1169
1167
  - fastlane/swift/Gymfile.swift
1170
1168
  - fastlane/swift/GymfileProtocol.swift
@@ -1187,10 +1185,8 @@ files:
1187
1185
  - fastlane/swift/SocketResponse.swift
1188
1186
  - fastlane/swift/main.swift
1189
1187
  - fastlane_core/README.md
1190
- - fastlane_core/lib/.DS_Store
1191
1188
  - fastlane_core/lib/assets/XMLTemplate.xml.erb
1192
1189
  - fastlane_core/lib/fastlane_core.rb
1193
- - fastlane_core/lib/fastlane_core/.DS_Store
1194
1190
  - fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb
1195
1191
  - fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb
1196
1192
  - fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb
@@ -1231,6 +1227,7 @@ files:
1231
1227
  - fastlane_core/lib/fastlane_core/provisioning_profile.rb
1232
1228
  - fastlane_core/lib/fastlane_core/string_filters.rb
1233
1229
  - fastlane_core/lib/fastlane_core/swag.rb
1230
+ - fastlane_core/lib/fastlane_core/tag_version.rb
1234
1231
  - fastlane_core/lib/fastlane_core/test_parser.rb
1235
1232
  - fastlane_core/lib/fastlane_core/tool_collector.rb
1236
1233
  - fastlane_core/lib/fastlane_core/ui/disable_colors.rb
@@ -1317,6 +1314,7 @@ files:
1317
1314
  - pilot/lib/pilot/tester_manager.rb
1318
1315
  - pilot/lib/pilot/tester_util.rb
1319
1316
  - precheck/README.md
1317
+ - precheck/lib/.DS_Store
1320
1318
  - precheck/lib/assets/PrecheckfileTemplate
1321
1319
  - precheck/lib/assets/PrecheckfileTemplate.swift
1322
1320
  - precheck/lib/precheck.rb
@@ -1562,10 +1560,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1562
1560
  version: '0'
1563
1561
  requirements: []
1564
1562
  rubyforge_project:
1565
- rubygems_version: 2.6.8
1563
+ rubygems_version: 2.2.5
1566
1564
  signing_key:
1567
1565
  specification_version: 4
1568
1566
  summary: The easiest way to automate beta deployments and releases for your iOS and
1569
1567
  Android apps
1570
1568
  test_files: []
1571
- has_rdoc:
Binary file
Binary file