fastlane 2.71.0.beta.20171219010003 → 2.71.0.beta.20171220010004

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
  SHA1:
3
- metadata.gz: d1fd252b22d17a46eaec58c8a919ac167ac5f852
4
- data.tar.gz: 2785ab29b9e222048881ab02ef16eaae06373234
3
+ metadata.gz: 5b0f28e3d854336011733cad2052ccf36787cb3f
4
+ data.tar.gz: 32ab90aa7fc301ecc5025ba4bcb6ccdad23d7a38
5
5
  SHA512:
6
- metadata.gz: b7a1c6c6ab62d30df653c582a0736939fe4bf174f5757c2e4f4907e534678bd257d6bb59e1b60bb4dc6f63aa3712b0ff29738481d7d7155d0407ddbe29131ae7
7
- data.tar.gz: ddec52067646e9f0e33d7641e1cac5f9ea3d8d81a07a6bfc139546c9932f6b5fa2dc65083ac284dca54fa121d8d08a555fdefac342fd6b5f5b97a862e4d6e8d2
6
+ metadata.gz: 9d746c80610c2316b7f52070b5d7316a34a53048b5bf22d135fa9ce4c7d55465c69fc7c197871c62d35c03b7d87c089da17a86d2dcf49fc9ea1b204a11256073
7
+ data.tar.gz: 8d3afe3ef6d4e1eb40aeb7a581856f6ece407b417be4b9895eb3690537a6f8f6a0081df8534220a79a1e3ea9a4163b7fc6f4259e98be1e432267978684017cb1
@@ -13,12 +13,14 @@ module Fastlane
13
13
  dangerfile = params[:dangerfile]
14
14
  base = params[:base]
15
15
  head = params[:head]
16
+ pr = params[:pr]
16
17
  cmd << "--danger_id=#{danger_id}" if danger_id
17
18
  cmd << "--dangerfile=#{dangerfile}" if dangerfile
18
19
  cmd << "--fail-on-errors=true" if params[:fail_on_errors]
19
20
  cmd << "--new-comment" if params[:new_comment]
20
21
  cmd << "--base=#{base}" if base
21
22
  cmd << "--head=#{head}" if head
23
+ cmd << "pr #{pr}" if pr
22
24
 
23
25
  ENV['DANGER_GITHUB_API_TOKEN'] = params[:github_api_token] if params[:github_api_token]
24
26
 
@@ -85,6 +87,11 @@ module Fastlane
85
87
  env_name: "FL_DANGER_HEAD",
86
88
  description: "A branch/tag/commit to use as the head. [master|dev|stable]",
87
89
  is_string: true,
90
+ optional: true),
91
+ FastlaneCore::ConfigItem.new(key: :pr,
92
+ env_name: "FL_DANGER_PR",
93
+ description: "Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\"",
94
+ is_string: true,
88
95
  optional: true)
89
96
  ]
90
97
  end
@@ -85,6 +85,10 @@ module Fastlane
85
85
  ]
86
86
  end
87
87
 
88
+ def self.return_type
89
+ :string
90
+ end
91
+
88
92
  def self.category
89
93
  :project
90
94
  end
@@ -44,6 +44,10 @@ module Fastlane
44
44
  ]
45
45
  end
46
46
 
47
+ def self.return_type
48
+ :string
49
+ end
50
+
47
51
  def self.category
48
52
  :source_control
49
53
  end
@@ -38,15 +38,24 @@ module Fastlane
38
38
 
39
39
  return [notifier, slack_attachment] if Helper.is_test? # tests will verify the slack attachments and other properties
40
40
 
41
- result = notifier.ping '',
42
- icon_url: icon_url,
43
- attachments: [slack_attachment]
44
-
45
- if result.code.to_i == 200
46
- UI.success('Successfully sent Slack notification')
47
- else
48
- UI.verbose(result)
49
- UI.user_error!("Error pushing Slack message, maybe the integration has no permission to post on this channel? Try removing the channel parameter in your Fastfile, this is usually caused by a misspelled or changed group/channel name or an expired SLACK_URL")
41
+ begin
42
+ result = notifier.ping '',
43
+ icon_url: icon_url,
44
+ attachments: [slack_attachment]
45
+ rescue => exception
46
+ UI.error("Exception: #{exception}")
47
+ ensure
48
+ if !result.nil? && result.code.to_i == 200
49
+ UI.success('Successfully sent Slack notification')
50
+ else
51
+ UI.verbose(result) unless result.nil?
52
+ message = "Error pushing Slack message, maybe the integration has no permission to post on this channel? Try removing the channel parameter in your Fastfile, this is usually caused by a misspelled or changed group/channel name or an expired SLACK_URL"
53
+ if options[:fail_on_error]
54
+ UI.user_error!(message)
55
+ else
56
+ UI.error(message)
57
+ end
58
+ end
50
59
  end
51
60
  end
52
61
 
@@ -109,6 +118,12 @@ module Fastlane
109
118
  description: "Was this build successful? (true/false)",
110
119
  optional: true,
111
120
  default_value: true,
121
+ is_string: false),
122
+ FastlaneCore::ConfigItem.new(key: :fail_on_error,
123
+ env_name: "FL_SLACK_FAIL_ON_ERROR",
124
+ description: "Should an error sending the slack notification cause a failure? (true/false)",
125
+ optional: true,
126
+ default_value: true,
112
127
  is_string: false)
113
128
  ]
114
129
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.71.0.beta.20171219010003'.freeze
2
+ VERSION = '2.71.0.beta.20171220010004'.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
@@ -1393,9 +1393,9 @@ func gcovr() {
1393
1393
  let command = RubyCommand(commandID: "", methodName: "gcovr", className: nil, args: [])
1394
1394
  _ = runner.executeCommand(command)
1395
1395
  }
1396
- func getBuildNumber(xcodeproj: String? = nil) {
1396
+ @discardableResult func getBuildNumber(xcodeproj: String? = nil) -> String {
1397
1397
  let command = RubyCommand(commandID: "", methodName: "get_build_number", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
1398
- _ = runner.executeCommand(command)
1398
+ return runner.executeCommand(command)
1399
1399
  }
1400
1400
  func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
1401
1401
  let command = RubyCommand(commandID: "", methodName: "get_build_number_repository", className: nil, args: [RubyCommand.Argument(name: "use_hg_revision_number", value: useHgRevisionNumber)])
@@ -1525,9 +1525,9 @@ func gitAdd(path: String? = nil,
1525
1525
  RubyCommand.Argument(name: "pathspec", value: pathspec)])
1526
1526
  _ = runner.executeCommand(command)
1527
1527
  }
1528
- func gitBranch() {
1528
+ @discardableResult func gitBranch() -> String {
1529
1529
  let command = RubyCommand(commandID: "", methodName: "git_branch", className: nil, args: [])
1530
- _ = runner.executeCommand(command)
1530
+ return runner.executeCommand(command)
1531
1531
  }
1532
1532
  func gitCommit(path: String,
1533
1533
  message: String) {
@@ -20,7 +20,7 @@ module FastlaneCore
20
20
  app_id_guesser = FastlaneCore::AppIdentifierGuesser.new(args: args)
21
21
  return self.new(
22
22
  action_name: action_name,
23
- p_hash: app_id_guesser.p_hash,
23
+ p_hash: app_id_guesser.p_hash || UNKNOWN_P_HASH,
24
24
  platform: app_id_guesser.platform,
25
25
  configuration_language: configuration_language
26
26
  )
@@ -163,14 +163,9 @@ module FastlaneCore
163
163
 
164
164
  self.config_file_name = config_file_name
165
165
 
166
- paths = []
167
- paths += Dir["./fastlane/#{self.config_file_name}"]
168
- paths += Dir["./.fastlane/#{self.config_file_name}"]
169
- paths += Dir["./#{self.config_file_name}"]
170
- paths += Dir["./fastlane_core/spec/fixtures/#{self.config_file_name}"] if Helper.is_test?
171
- return if paths.count == 0
166
+ path = FastlaneCore::Configuration.find_configuration_file_path(config_file_name: config_file_name)
167
+ return if path.nil?
172
168
 
173
- path = paths.first
174
169
  begin
175
170
  configuration_file = ConfigurationFile.new(self, path, block_for_missing, skip_printing_values)
176
171
  options = configuration_file.options
@@ -196,6 +191,16 @@ module FastlaneCore
196
191
  configuration_file
197
192
  end
198
193
 
194
+ def self.find_configuration_file_path(config_file_name: nil)
195
+ paths = []
196
+ paths += Dir["./fastlane/#{config_file_name}"]
197
+ paths += Dir["./.fastlane/#{config_file_name}"]
198
+ paths += Dir["./#{config_file_name}"]
199
+ paths += Dir["./fastlane_core/spec/fixtures/#{config_file_name}"] if Helper.is_test?
200
+ return nil if paths.count == 0
201
+ return paths.first
202
+ end
203
+
199
204
  #####################################################
200
205
  # @!group Actually using the class
201
206
  #####################################################
@@ -141,7 +141,7 @@ module FastlaneCore
141
141
  # @return the full path to the Xcode developer tools of the currently
142
142
  # running system
143
143
  def self.xcode_path
144
- return "" if self.is_test? and !self.is_mac?
144
+ return "" unless self.is_mac?
145
145
  `xcode-select -p`.delete("\n") + "/"
146
146
  end
147
147
 
@@ -1,5 +1,6 @@
1
1
  module FastlaneCore
2
2
  class IOSAppIdentifierGuesser
3
+ APP_ID_REGEX = /var\s*appIdentifier:\s*String\?{0,1}\s*\[?\]?\s*{\s*return\s*\[?\s*"(\s*[a-zA-Z.-]+\s*)"\s*\]?\s*}/
3
4
  class << self
4
5
  def guess_app_identifier_from_args(args)
5
6
  # args example: ["-a", "com.krausefx.app", "--team_id", "5AA97AAHK2"]
@@ -24,7 +25,7 @@ module FastlaneCore
24
25
  CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)
25
26
  end
26
27
 
27
- def fetch_app_identifier_from_file(file_name)
28
+ def fetch_app_identifier_from_ruby_file(file_name)
28
29
  # we only care about the app_identifier item in the configuration file, so
29
30
  # build an options array & Configuration with just that one key and it will
30
31
  # be fetched if it is present in the config file
@@ -41,12 +42,52 @@ module FastlaneCore
41
42
  nil
42
43
  end
43
44
 
45
+ def fetch_app_identifier_from_swift_file(file_name)
46
+ swift_config_file_path = FastlaneCore::Configuration.find_configuration_file_path(config_file_name: file_name)
47
+ return nil if swift_config_file_path.nil?
48
+
49
+ # Deliverfile.swift, Snapfile.swift, Appfile.swift all look like:
50
+ # var appIdentifier: String? { return nil }
51
+ # var appIdentifier: String { return "" }
52
+
53
+ # Matchfile.swift is the odd one out
54
+ # var appIdentifier: [String] { return [] }
55
+ #
56
+
57
+ swift_config_file_path = File.expand_path(swift_config_file_path)
58
+ swift_config_content = File.read(swift_config_file_path)
59
+
60
+ swift_config_content.split("\n").reject(&:empty?).each do |line|
61
+ application_id = match_swift_application_id(text_line: line)
62
+ return application_id if application_id
63
+ end
64
+ return nil
65
+ rescue
66
+ # any option/file error here should just be treated as identifier not found
67
+ return nil
68
+ end
69
+
70
+ def match_swift_application_id(text_line: nil)
71
+ text_line.strip!
72
+ application_id_match = APP_ID_REGEX.match(text_line)
73
+ return application_id_match[1].strip if application_id_match
74
+
75
+ return nil
76
+ end
77
+
44
78
  def guess_app_identifier_from_config_files
45
79
  ["Deliverfile", "Gymfile", "Snapfile", "Matchfile"].each do |current|
46
- app_identifier = self.fetch_app_identifier_from_file(current)
80
+ app_identifier = self.fetch_app_identifier_from_ruby_file(current)
47
81
  return app_identifier if app_identifier
48
82
  end
49
- nil
83
+
84
+ # if we're swifty, let's look there
85
+ # this isn't the same list as above
86
+ ["Deliverfile.swift", "Snapfile.swift", "Appfile.swift", "Matchfile.swift"].each do |current|
87
+ app_identifier = self.fetch_app_identifier_from_swift_file(current)
88
+ return app_identifier if app_identifier
89
+ end
90
+ return nil
50
91
  end
51
92
 
52
93
  # make a best-guess for the app_identifier for this project, using most-reliable signals
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.71.0.beta.20171219010003
4
+ version: 2.71.0.beta.20171220010004
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-19 00:00:00.000000000 Z
18
+ date: 2017-12-20 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier