fastlane 1.69.0 → 1.70.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
  SHA1:
3
- metadata.gz: 5d29b7501225e604d391ffd243a2749404958456
4
- data.tar.gz: ec1bac264e401af22eaaa8e92373296aa37c1fdf
3
+ metadata.gz: 92368e189d0fabe6140e11af939ca965f80dd279
4
+ data.tar.gz: aec475dc75f8c8ec48b321772226b08a59792822
5
5
  SHA512:
6
- metadata.gz: b5495fdc7b764fa11edf7845aab397165a676ae8a25c401bcd23adf6ae04de0ea46138d90429ebc10b1b218e1e89cc7b2f6589e1656536e0fcc4a7509d8ea34b
7
- data.tar.gz: 388a06e91c69148dad378c7466f7455a2d687c0cf623fb205548866a81c5f3e657b9b0af81780435ed1fc33c4b2a47037401784575360e4bcac425dea7166066
6
+ metadata.gz: c9a426c73fd4edcd1559259d9f10df844d67b7679463c0dd9d4a97657eddfd628451aad63dbbcfdc8a3b10b3d115fafd1348eaf749421524c8c973225d2c9641
7
+ data.tar.gz: 191d9e1609fb2eb5c54dc666c11aa4e62f332ec9e7530735728fdf5782238ac158aed5a67018cb4199dfe1183796eec2d4d5bdd5d21d15c66441c079e2615b33
@@ -29,6 +29,10 @@ module Fastlane
29
29
 
30
30
  UI.message(message.join(" "))
31
31
  app = Spaceship::Application.find(params[:app_identifier])
32
+ unless app
33
+ UI.user_error!("Could not find app with bundle identifier '#{params[:app_identifier]}' on account #{params[:username]}")
34
+ end
35
+
32
36
  app.all_build_train_numbers.each do |train_number|
33
37
  if version && version != train_number
34
38
  next
@@ -8,7 +8,7 @@ module Fastlane
8
8
  begin
9
9
  FastlaneCore::UpdateChecker.start_looking_for_update('supply') unless Helper.is_test?
10
10
 
11
- all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS]
11
+ all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] || []
12
12
  if all_apk_paths.length > 1
13
13
  params[:apk_paths] ||= all_apk_paths
14
14
  else
@@ -2,9 +2,68 @@ module Fastlane
2
2
  module Actions
3
3
  class UploadSymbolsToCrashlyticsAction < Action
4
4
  def self.run(params)
5
- params[:binary_path] ||= (Dir["/Applications/Fabric.app/**/upload-symbols"] + Dir["./Pods/**/upload-symbols"]).last
6
- UI.user_error!("Please provide a path to the binary using binary_path:") unless params[:binary_path]
5
+ require 'tmpdir'
6
+
7
+ find_binary_path(params)
8
+ find_api_token(params)
9
+
10
+ dsym_paths = []
11
+ dsym_paths << params[:dsym_path]
12
+ dsym_paths += Actions.lane_context[SharedValues::DSYM_PATHS] if Actions.lane_context[SharedValues::DSYM_PATHS]
13
+
14
+ if dsym_paths.count == 0
15
+ UI.error("Couldn't find any dSYMs, please pass them using the dsym_path option")
16
+ return nil
17
+ end
7
18
 
19
+ # Get rid of duplicates (which might occur when both passed and detected)
20
+ dsym_paths = dsym_paths.collect { |a| File.expand_path(a) }
21
+ dsym_paths.uniq!
22
+
23
+ dsym_paths.each do |current_path|
24
+ handle_dsym(params, current_path)
25
+ end
26
+
27
+ UI.success("Successfully uploaded dSYM files to Crashlytics 💯")
28
+ end
29
+
30
+ # @param current_path this is a path to either a dSYM or a zipped dSYM
31
+ # this might also be either nested or not, we're flexible
32
+ def self.handle_dsym(params, current_path)
33
+ if current_path.end_with?(".dSYM")
34
+ upload_dsym(params, current_path)
35
+ elsif current_path.end_with?(".zip")
36
+ UI.message("Extracting '#{current_path}'...")
37
+
38
+ current_path = File.expand_path(current_path)
39
+ Dir.mktmpdir do |dir|
40
+ Dir.chdir(dir) do
41
+ Actions.sh("unzip -qo #{current_path.shellescape}")
42
+ Dir["*.dSYM"].each do |sub|
43
+ handle_dsym(params, sub)
44
+ end
45
+ end
46
+ end
47
+ else
48
+ UI.error "Don't know how to handle '#{current_path}'"
49
+ end
50
+ end
51
+
52
+ def self.upload_dsym(params, path)
53
+ UI.message("Uploading '#{path}'...")
54
+ command = []
55
+ command << params[:binary_path]
56
+ command << "-a #{params[:api_token]}"
57
+ command << "-p #{params[:platform]}"
58
+ command << File.expand_path(path).shellescape
59
+ begin
60
+ Actions.sh(command.join(" "), log: false)
61
+ rescue => ex
62
+ UI.error ex.to_s # it fails, however we don't want to fail everything just for this
63
+ end
64
+ end
65
+
66
+ def self.find_api_token(params)
8
67
  unless params[:api_token].to_s.length > 0
9
68
  Dir["./**/Info.plist"].each do |current|
10
69
  result = Actions::GetInfoPlistValueAction.run(path: current, key: "Fabric")
@@ -14,23 +73,13 @@ module Fastlane
14
73
  end
15
74
  end
16
75
  UI.user_error!("Please provide an api_token using api_token:") unless params[:api_token]
76
+ end
17
77
 
18
- dsym_paths = []
19
- dsym_paths << params[:dsym_path]
20
- dsym_paths += Actions.lane_context[SharedValues::DSYM_PATHS] if Actions.lane_context[SharedValues::DSYM_PATHS]
21
-
22
- UI.error("Couldn't find any dSYMs, please pass them using the dsym_path option") if dsym_paths.count == 0
23
-
24
- dsym_paths.each do |current_path|
25
- command = []
26
- command << File.expand_path(params[:binary_path])
27
- command << "-a #{params[:api_token]}"
28
- command << "-p #{params[:platform]}"
29
- command << File.expand_path(current_path)
30
- Actions.sh(command.join(" "))
31
- end
78
+ def self.find_binary_path(params)
79
+ params[:binary_path] ||= (Dir["/Applications/Fabric.app/**/upload-symbols"] + Dir["./Pods/**/upload-symbols"]).last
80
+ UI.user_error!("Please provide a path to the binary using binary_path:") unless params[:binary_path]
32
81
 
33
- UI.success("Successfully uploaded dSYM files to Crashlytics 💯")
82
+ params[:binary_path] = File.expand_path(params[:binary_path])
34
83
  end
35
84
 
36
85
  #####################################################
@@ -58,7 +107,7 @@ module Fastlane
58
107
  optional: true,
59
108
  verify_block: proc do |value|
60
109
  UI.user_error!("Couldn't find file at path '#{File.expand_path(value)}'") unless File.exist?(value)
61
- UI.user_error!("Symbolication file needs to be dSYM or zip") unless value.end_with?("dSYM.zip", ".dSYM")
110
+ UI.user_error!("Symbolication file needs to be dSYM or zip") unless value.end_with?(".zip", ".dSYM")
62
111
  end),
63
112
  FastlaneCore::ConfigItem.new(key: :api_token,
64
113
  env_name: "CRASHLYTICS_API_TOKEN",
@@ -1,3 +1,3 @@
1
1
  module Fastlane
2
- VERSION = '1.69.0'.freeze
2
+ VERSION = '1.70.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.69.0
4
+ version: 1.70.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-31 00:00:00.000000000 Z
11
+ date: 2016-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: krausefx-shenzhen
@@ -388,7 +388,7 @@ dependencies:
388
388
  requirements:
389
389
  - - ">="
390
390
  - !ruby/object:Gem::Version
391
- version: 0.4.0
391
+ version: 0.6.0
392
392
  - - "<"
393
393
  - !ruby/object:Gem::Version
394
394
  version: 1.0.0
@@ -398,7 +398,7 @@ dependencies:
398
398
  requirements:
399
399
  - - ">="
400
400
  - !ruby/object:Gem::Version
401
- version: 0.4.0
401
+ version: 0.6.0
402
402
  - - "<"
403
403
  - !ruby/object:Gem::Version
404
404
  version: 1.0.0