fastlane 2.95.0.beta.20180502050125 → 2.95.0.beta.20180503050136

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: 9bdad5e365a2ddea2f5d4205197d8a2175d038ba
4
- data.tar.gz: 4c65d0e72f385450b2aa493caf51efe4ce48e7d2
3
+ metadata.gz: 3abe7f47de2ab60cef65f6cc24b219f9c2f8599f
4
+ data.tar.gz: 185724ecc03fe6388c4e6953b9d8ffdd822e7cb8
5
5
  SHA512:
6
- metadata.gz: d82bb1f76111c32e50586eb67d7af026c7e529dd4cca61f2574641f6d374d89ffb8e03120f058b6d200a9e12e64043fc7b7b9bea7b1260ac02c573d8738477f0
7
- data.tar.gz: c810132f70bd323832cc09b3a5b2e50b0245d328515663c73ad410bcb3eda3e89e2ef243d66a801763366122cedf91ec0e7f58919bf34a98b705a215967e43c1
6
+ metadata.gz: e7d8be4839517946020d96f5ab3a5cf2911e28f00cb06b007965c63549e5db7a26b082ee9c1599f9f0fc7e3680f204985bea2c758a0cdabdba6d456d87a2e8b0
7
+ data.tar.gz: d9c2c3c1ea81a6393b84039eb9d90458c791bd3d5078f77a9ab9a932e11d3828096099e2c078baf4f4816073cbad42ec35611def2540fdfd843a8773f6039f8e
@@ -29,19 +29,22 @@ module Fastlane
29
29
  merge_commit_filtering = :exclude_merges
30
30
  end
31
31
 
32
- if params[:commits_count]
33
- changelog = Actions.git_log_last_commits(params[:pretty], params[:commits_count], merge_commit_filtering, params[:date_format], params[:ancestry_path])
34
- else
35
- changelog = Actions.git_log_between(params[:pretty], from, to, merge_commit_filtering, params[:date_format], params[:ancestry_path])
36
- end
37
- changelog = changelog.gsub("\n\n", "\n") if changelog # as there are duplicate newlines
38
- Actions.lane_context[SharedValues::FL_CHANGELOG] = changelog
32
+ Dir.chdir(params[:path]) do
33
+ if params[:commits_count]
34
+ changelog = Actions.git_log_last_commits(params[:pretty], params[:commits_count], merge_commit_filtering, params[:date_format], params[:ancestry_path])
35
+ else
36
+ changelog = Actions.git_log_between(params[:pretty], from, to, merge_commit_filtering, params[:date_format], params[:ancestry_path])
37
+ end
38
+
39
+ changelog = changelog.gsub("\n\n", "\n") if changelog # as there are duplicate newlines
40
+ Actions.lane_context[SharedValues::FL_CHANGELOG] = changelog
39
41
 
40
- puts("")
41
- puts(changelog)
42
- puts("")
42
+ puts("")
43
+ puts(changelog)
44
+ puts("")
43
45
 
44
- changelog
46
+ changelog
47
+ end
45
48
  end
46
49
 
47
50
  #####################################################
@@ -83,6 +86,11 @@ module Fastlane
83
86
  verify_block: proc do |value|
84
87
  UI.user_error!(":commits_count must be >= 1") unless value.to_i >= 1
85
88
  end),
89
+ FastlaneCore::ConfigItem.new(key: :path,
90
+ env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_PATH',
91
+ description: 'Path of the git repository',
92
+ optional: true,
93
+ default_value: './'),
86
94
  FastlaneCore::ConfigItem.new(key: :pretty,
87
95
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_PRETTY',
88
96
  description: 'The format applied to each commit while generating the collected value',
@@ -205,7 +205,7 @@ The `keyword.strings` and `title.strings` are standard `.strings` file you alrea
205
205
 
206
206
  **Notes**
207
207
 
208
- - These `.strings` files **MUST** be utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see [issue #1740](https://github.com/fastlane/fastlane/issues/1740)
208
+ - These `.strings` files **MUST** be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see [issue #1740](https://github.com/fastlane/fastlane/issues/1740)
209
209
  - You **MUST** provide a background if you want titles. _frameit_ will not add the tiles if a background is not specified.
210
210
 
211
211
  # Mac
@@ -325,6 +325,25 @@ If you want to manually decrypt a file you can.
325
325
  openssl aes-256-cbc -k "<password>" -in "<fileYouWantToDecryptPath>" -out "<decryptedFilePath>" -a -d
326
326
  ```
327
327
 
328
+ #### Export Distribution Certificate and Private Key as Single .p12 File
329
+
330
+ _match_ stores the certificate (.cer) and the private key (.p12) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file.
331
+
332
+ Decrypt your cert found in certs/`<type>`/`<unique-id>`.cer as a pem file
333
+ ```no-highlight
334
+ openssl aes-256-cbc -k "<password>" -in "certs/<type>/<unique-id>.cer" -out "cert.dem" -a -d
335
+ openssl x509 -inform der -in cert.der -out cert.pem
336
+ ```
337
+
338
+ Decrypt your private key found in certs/`<type>`/`<unique-id>`.p12 as a pem file
339
+ ```no-highlight
340
+ openssl aes-256-cbc -k "<password>" -in "certs/distribution/<unique-id>.p12" -out "key.pem" -a -d
341
+ ```
342
+
343
+ Generate an encrypted p12 file with the same or new password
344
+ ```no-highlight
345
+ openssl pkcs12 -export -out "cert.p12" -inkey "key.pem' -in "cert.pem" -password pass:<password>
346
+ ```
328
347
 
329
348
  ## Is this secure?
330
349
 
@@ -28,9 +28,9 @@ module Fastlane
28
28
  sudo_needed = !File.writable?(gem_dir)
29
29
 
30
30
  if sudo_needed
31
- UI.important("It seems that your Gem directory is not writable by your current User.")
31
+ UI.important("It seems that your Gem directory is not writable by your current user.")
32
32
  UI.important("fastlane would need sudo rights to update itself, however, running 'sudo fastlane' is not recommended.")
33
- UI.important("If you still want to use this action, please read the documentation on a guide how to set this up:")
33
+ UI.important("If you still want to use this action, please read the documentation on how to set this up:")
34
34
  UI.important("https://docs.fastlane.tools/actions/#update_fastlane")
35
35
  return
36
36
  end
@@ -57,6 +57,7 @@ module Fastlane
57
57
  # rubocop:enable Security/Eval
58
58
  rescue SyntaxError => ex
59
59
  line = ex.to_s.match(/#{Regexp.escape(relative_path)}:(\d+)/)[1]
60
+ UI.content_error(data, line)
60
61
  UI.user_error!("Syntax error in your Fastfile on line #{line}: #{ex}")
61
62
  end
62
63
  end
@@ -57,12 +57,17 @@ module Fastlane
57
57
  e = nil
58
58
  begin
59
59
  ff.runner.execute(lane, platform, parameters)
60
+ rescue NameError => ex
61
+ print_lane_context
62
+ print_error_line(ex)
63
+ e = ex
60
64
  rescue Exception => ex # rubocop:disable Lint/RescueException
61
65
  # We also catch Exception, since the implemented action might send a SystemExit signal
62
66
  # (or similar). We still want to catch that, since we want properly finish running fastlane
63
67
  # Tested with `xcake`, which throws a `Xcake::Informative` object
64
68
 
65
69
  print_lane_context
70
+ print_error_line(ex)
66
71
  UI.error(ex.to_s) if ex.kind_of?(StandardError) # we don't want to print things like 'system exit'
67
72
  e = ex
68
73
  end
@@ -75,5 +75,14 @@ module Fastlane
75
75
  rows: FastlaneCore::PrintTable.transform_output(rows)
76
76
  }))
77
77
  end
78
+
79
+ def self.print_error_line(ex)
80
+ error_line = ex.backtrace[0].match("Fastfile:(\\d+):")
81
+ return unless error_line
82
+
83
+ line = error_line[1]
84
+ UI.error("Error in your Fastfile at line #{line}")
85
+ UI.content_error(File.read(FastlaneCore::FastlaneFolder.fastfile_path, encoding: "utf-8"), line)
86
+ end
78
87
  end
79
88
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.95.0.beta.20180502050125'.freeze
2
+ VERSION = '2.95.0.beta.20180503050136'.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
@@ -43,12 +43,14 @@ module FastlaneCore
43
43
 
44
44
  begin
45
45
  # rubocop:disable Security/Eval
46
- eval(content) # this is okay in this case
46
+ puts(eval(content)) # this is okay in this case
47
47
  # rubocop:enable Security/Eval
48
48
 
49
49
  print_resulting_config_values unless skip_printing_values # only on success
50
50
  rescue SyntaxError => ex
51
51
  line = ex.to_s.match(/\(eval\):(\d+)/)[1]
52
+ UI.error("Error in your #{File.basename(path)} at line #{line}")
53
+ UI.content_error(content, line)
52
54
  UI.user_error!("Syntax error in your configuration file '#{path}' on line #{line}: #{ex}")
53
55
  rescue => ex
54
56
  raise ExceptionWhileParsingError.new(ex, self.options), "Error while parsing config file at #{path}"
@@ -96,6 +96,23 @@ module FastlaneCore
96
96
  success("-" * i)
97
97
  end
98
98
 
99
+ def content_error(content, error_line)
100
+ error_line = error_line.to_i
101
+ return unless error_line > 0
102
+
103
+ contents = content.split(/\r?\n/).map(&:chomp)
104
+
105
+ start_line = error_line - 2 < 1 ? 1 : error_line - 2
106
+ end_line = error_line + 2 < contents.length ? error_line + 2 : contents.length
107
+
108
+ Range.new(start_line, end_line).each do |line|
109
+ str = line == error_line ? " => " : " "
110
+ str << line.to_s.rjust(Math.log10(end_line) + 1)
111
+ str << ":\t#{contents[line - 1]}"
112
+ error(str)
113
+ end
114
+ end
115
+
99
116
  #####################################################
100
117
  # @!group Errors: Inputs
101
118
  #####################################################
@@ -78,6 +78,14 @@ module FastlaneCore
78
78
  not_implemented(__method__)
79
79
  end
80
80
 
81
+ # Print lines of content around specific line where
82
+ # failed to parse.
83
+ #
84
+ # This message will be shown as error
85
+ def content_error(content, error_line)
86
+ not_implemented(__method__)
87
+ end
88
+
81
89
  #####################################################
82
90
  # @!group Errors: Inputs
83
91
  #####################################################
@@ -151,7 +151,7 @@ module Pilot
151
151
 
152
152
  command :import do |c|
153
153
  c.syntax = "fastlane pilot import"
154
- c.description = "Create external testers from a CSV file"
154
+ c.description = "Import external testers from a CSV file called testers.csv"
155
155
 
156
156
  FastlaneCore::CommanderGenerator.new.generate(Pilot::Options.available_options, command: c)
157
157
 
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.95.0.beta.20180502050125
4
+ version: 2.95.0.beta.20180503050136
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Natchev
@@ -27,7 +27,7 @@ authors:
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2018-05-02 00:00:00.000000000 Z
30
+ date: 2018-05-03 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: slack-notifier
@@ -1651,24 +1651,24 @@ metadata:
1651
1651
  post_install_message:
1652
1652
  rdoc_options: []
1653
1653
  require_paths:
1654
- - screengrab/lib
1654
+ - gym/lib
1655
+ - pem/lib
1656
+ - fastlane_core/lib
1655
1657
  - deliver/lib
1658
+ - screengrab/lib
1659
+ - scan/lib
1660
+ - precheck/lib
1661
+ - match/lib
1662
+ - fastlane/lib
1663
+ - sigh/lib
1664
+ - spaceship/lib
1656
1665
  - frameit/lib
1657
1666
  - pilot/lib
1658
- - credentials_manager/lib
1659
- - fastlane_core/lib
1660
1667
  - cert/lib
1661
- - pem/lib
1662
- - gym/lib
1668
+ - produce/lib
1663
1669
  - snapshot/lib
1664
- - fastlane/lib
1665
- - sigh/lib
1666
- - spaceship/lib
1667
- - match/lib
1668
- - precheck/lib
1669
- - scan/lib
1670
1670
  - supply/lib
1671
- - produce/lib
1671
+ - credentials_manager/lib
1672
1672
  required_ruby_version: !ruby/object:Gem::Requirement
1673
1673
  requirements:
1674
1674
  - - ">="