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

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: 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
  - - ">="