fastlane 0.7.0 → 0.8.0

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: 5bfbf28d8f19dd00c13ed6c94a78879a606614eb
4
- data.tar.gz: 1dab9f075c9f44962d58eb342fbc191e3832b925
3
+ metadata.gz: e853c65eb491960197f6a6490570114c267718f8
4
+ data.tar.gz: d21148557d3cd66ab6db4e5b08961914686e5d15
5
5
  SHA512:
6
- metadata.gz: 07581ab17b99fa7e2257e7ad87e3da20eade8fe5de023c9fe11326d77ec8dcb76c5005b11f1a657a5e5ffd7079e3761f73185cbd590bd18c0b47a4a1e9a0438a
7
- data.tar.gz: a42015506abdd38d372305c95a13cec5edf1f427008f10a3a7775bccd07c1087882c4577bf2ccc7ce97e0f6381f7e553f437806949c2fa30a0fdb2156876a00b
6
+ metadata.gz: 3ab3ce015edb69c2d896b83f0dded4552aaeca4d6f64f86a4444b001ea5e0bf550d9ff02faf8aeceb00a2be8c42eff1d659d62e982d1e20f1712a100a71acff0
7
+ data.tar.gz: 5c82dbe93c7d5751c89b1dcfaa55d5d6dc52a445b855fa02f6f727a29a00a4fa346575f2469067b29543ad4a453eebfaa21fdbe45f60b16763c71c92460120e9
data/README.md CHANGED
@@ -136,7 +136,7 @@ A detailed description about how ```fastlane``` stores your credentials is avail
136
136
 
137
137
  ## Special Thanks
138
138
 
139
- Thanks to all sponsors and contributors for extending and improving the `fastlane` suite:
139
+ Thanks to all contributors for extending and improving the `fastlane` suite:
140
140
  - [Detroit Labs](http://www.detroitlabs.com/)
141
141
  - Josh Holtz ([@joshdholtz](https://twitter.com/joshdholtz))
142
142
  - Ash Furrow ([@ashfurrow](https://twitter.com/ashfurrow))
@@ -55,6 +55,20 @@ class FastlaneApplication
55
55
  end
56
56
  end
57
57
 
58
+ command :lanes do |c|
59
+ c.syntax = 'fastlane lanes'
60
+ c.description = 'Lists all available lanes'
61
+
62
+ c.action do |_args, _options|
63
+ ff = Fastlane::FastFile.new(File.join(Fastlane::FastlaneFolder.path, 'Fastfile'))
64
+ puts "\nAvailable lanes:".green
65
+ ff.runner.available_lanes.each do |lane|
66
+ puts "- #{lane}"
67
+ end
68
+ puts "\nExecute using `fastlane [lane_name]`".yellow
69
+ end
70
+ end
71
+
58
72
  command :actions do |c|
59
73
  c.syntax = 'fastlane actions'
60
74
  c.description = 'Lists all available fastlane actions'
@@ -81,7 +95,7 @@ class FastlaneApplication
81
95
  end
82
96
 
83
97
  begin
84
- # FastlaneCore::UpdateChecker.start_looking_for_update('fastlane')
98
+ FastlaneCore::UpdateChecker.start_looking_for_update('fastlane')
85
99
  FastlaneApplication.new.run
86
100
  ensure
87
101
  FastlaneCore::UpdateChecker.show_update_status('fastlane', Fastlane::VERSION)
@@ -4,4 +4,8 @@ apple_id "[[APPLE_ID]]" # Your Apple email address
4
4
  # You can uncomment any of the lines below and add your own
5
5
  # team selection in case you're in multiple teams
6
6
  # team_name "Felix Krause"
7
- # team_id "Q2CBPJ58CA"
7
+ # team_id "Q2CBPJ58CA"
8
+
9
+
10
+ # you can even provide different app identifiers, Apple IDs and team names per lane:
11
+ # https://github.com/KrauseFx/fastlane/blob/master/docs/Advanced.md#the-appfile
@@ -2,9 +2,13 @@
2
2
  # https://github.com/krausefx/fastlane#customise-the-fastfile
3
3
 
4
4
  # Change the syntax highlighting to Ruby
5
-
6
5
  # All lines starting with a # are ignored when running `fastlane`
7
6
 
7
+ # By default, fastlane will send which actions are used
8
+ # No personal data is shared, more information on https://github.com/fastlane/enhancer
9
+ # Uncomment the following line to opt out
10
+ # opt_out_usage
11
+
8
12
  # This is the minimum version number required.
9
13
  # Update this, if you use features of a newer version
10
14
  fastlane_version "[[FASTLANE_VERSION]]"
@@ -6,8 +6,10 @@ module Fastlane
6
6
 
7
7
  class [[NAME_CLASS]] < Action
8
8
  def self.run(params)
9
- puts "My Ruby Code!"
10
- # puts "Parameter Path: #{params[:first]}"
9
+ params = params.first
10
+
11
+ Helper.log.info "My Ruby Code!"
12
+ # Helper.log.info "Parameter Path: #{params[:first]}"
11
13
  # sh "shellcommand ./path"
12
14
 
13
15
  # Actions.lane_context[SharedValues::[[NAME_UP]]_CUSTOM_VALUE] = "my_val"
@@ -9,6 +9,7 @@ require 'fastlane/junit_generator'
9
9
  require 'fastlane/lane_manager'
10
10
  require 'fastlane/action'
11
11
  require 'fastlane/actions/actions_helper'
12
+ require 'fastlane/action_collector'
12
13
 
13
14
  require 'fastlane_core'
14
15
 
@@ -1,3 +1,5 @@
1
+ require 'fastlane/actions/actions_helper'
2
+
1
3
  module Fastlane
2
4
  class Action
3
5
  def self.run(params)
@@ -33,5 +35,10 @@ module Fastlane
33
35
  def self.author
34
36
  "KrauseFx"
35
37
  end
38
+
39
+ # to allow a simple `sh` in the custom actions
40
+ def self.sh(command)
41
+ Fastlane::Actions.sh(command)
42
+ end
36
43
  end
37
44
  end
@@ -0,0 +1,52 @@
1
+ module Fastlane
2
+ class ActionCollector
3
+ HOST_URL = "https://fastlane-enhancer.herokuapp.com/"
4
+
5
+ def did_launch_action(name)
6
+ launches[name] ||= 0
7
+ launches[name] += 1
8
+ end
9
+
10
+ def did_raise_error(name)
11
+ @error = name
12
+ end
13
+
14
+ # Sends the used actions
15
+ # Example data => [:xcode_select, :deliver, :notify, :slack]
16
+ def did_finish
17
+ Thread.new do
18
+ unless ENV["FASTLANE_OPT_OUT_USAGE"]
19
+
20
+ unless did_show_message?
21
+ Helper.log.debug("Sending Crash/Success information. More information on: https://github.com/fastlane/enhancer")
22
+ Helper.log.debug(launches)
23
+ Helper.log.debug(@error) if @error
24
+ Helper.log.debug("This information is used to fix failing actions and improve integrations that are often used.")
25
+ Helper.log.debug("You can disable this by adding `opt_out_usage` to your Fastfile")
26
+ end
27
+
28
+ require 'excon'
29
+ url = HOST_URL + '/did_launch?'
30
+ url += URI.encode_www_form(
31
+ steps: launches.to_json,
32
+ error: @error
33
+ )
34
+
35
+ Excon.post(url)
36
+ end
37
+ end
38
+ end
39
+
40
+ def launches
41
+ @launches ||= {}
42
+ end
43
+
44
+ def did_show_message?
45
+ path = File.join(File.expand_path('~'), '.did_show_opt_info')
46
+
47
+ did_show = File.exists?path
48
+ File.write(path, '1')
49
+ did_show
50
+ end
51
+ end
52
+ end
@@ -16,7 +16,7 @@ module Fastlane
16
16
  beta = params.include?(:beta)
17
17
  skip_deploy = params.include?(:skip_deploy)
18
18
 
19
- Dir.chdir(FastlaneFolder.path || Dir.pwd) do
19
+ Dir.chdir(ENV["DELIVERFILE_PATH"] || FastlaneFolder.path || Dir.pwd) do
20
20
  # This should be executed in the fastlane folder
21
21
  Deliver::Deliverer.new(nil,
22
22
  force: force,
@@ -24,7 +24,7 @@ module Fastlane
24
24
  require 'shenzhen'
25
25
  require 'shenzhen/plugins/hockeyapp'
26
26
 
27
- raise "No API Token for Hockey given, pass using `api_token: 'token'`".red unless options[:api_token].to_s.length > 0
27
+ raise "No API Token for Hockey given, pass using `api_token: 'token'`. Open https://rink.hockeyapp.net/manage/auth_tokens to get one".red unless options[:api_token].to_s.length > 0
28
28
  raise "No IPA file given or found, pass using `ipa: 'path.ipa'`".red unless options[:ipa]
29
29
  raise "IPA file on path '#{File.expand_path(options[:ipa])}' not found".red unless File.exist?(options[:ipa])
30
30
 
@@ -74,12 +74,12 @@ module Fastlane
74
74
  ['ipa', 'Path to the ipa file. Optional if you use the `ipa` or `xcodebuild` action'],
75
75
  ['notes', 'The changelog for this build'],
76
76
  ['dsym', 'Path to the dsym file. Optional if you use the `ipa` or `xcodebuild` action'],
77
- ['status', 'No description'],
77
+ ['status', 'Download status: 1 = No user can download; 2 = Available for download'],
78
78
  ['notify', 'Notify testers? 1 for yes'],
79
79
  ]
80
80
  end
81
81
 
82
- def output
82
+ def self.output
83
83
  [
84
84
  ['HOCKEY_DOWNLOAD_LINK', 'The newly generated download link for this build'],
85
85
  ['HOCKEY_BUILD_INFORMATION', 'contains all keys/values from the HockeyApp API, like :title, :bundle_identifier']
@@ -95,7 +95,7 @@ module Fastlane
95
95
  end
96
96
 
97
97
  def self.description
98
- "Increment the build number of your project"
98
+ "Increment the version number of your project"
99
99
  end
100
100
 
101
101
  def self.details
@@ -0,0 +1,27 @@
1
+ module Fastlane
2
+ module Actions
3
+ class OptOutUsageAction < Action
4
+ def self.run(params)
5
+ ENV['FASTLANE_OPT_OUT_USAGE'] = "YES"
6
+ Helper.log.info "Disabled upload of used actions"
7
+ end
8
+
9
+ def self.description
10
+ "This will stop uploading the information which actions were run"
11
+ end
12
+
13
+ def self.details
14
+ [
15
+ "By default, fastlane will share the used actions. ",
16
+ "No personal information is shard. More information available on ",
17
+ "https://github.com/fastlane/enhancer\n",
18
+ "Using this action you can opt out"
19
+ ].join('')
20
+ end
21
+
22
+ def self.author
23
+ "KrauseFx"
24
+ end
25
+ end
26
+ end
27
+ end
@@ -26,7 +26,7 @@ module Fastlane
26
26
  end
27
27
 
28
28
  def self.description
29
- "Code sign an existing API"
29
+ "Code sign an existing ipa file"
30
30
  end
31
31
 
32
32
  def self.available_options
@@ -119,15 +119,32 @@ module Fastlane
119
119
  if testing
120
120
  if params[:reports]
121
121
  # New report options format
122
- reports = params[:reports].map do |report|
123
- unless report[:screenshots]
124
- "--report #{report[:report]} --output #{report[:output]}"
125
- else
126
- "--report #{report[:report]} --output #{report[:output]} --screenshots"
122
+ reports = params[:reports].reduce("") do |arguments, report|
123
+
124
+ report_string = "--report #{report[:report]}"
125
+
126
+ if report[:output]
127
+ report_string << " --output \"#{report[:output]}\""
128
+ elsif report[:report] == 'junit'
129
+ report_string << " --output \"#{build_path}report/report.xml\""
130
+ elsif report[:report] == 'html'
131
+ report_string << " --output \"#{build_path}report/report.html\""
132
+ elsif report[:report] == 'json-compilation-database'
133
+ report_string << " --output \"#{build_path}report/report.json\""
127
134
  end
135
+
136
+ if report[:screenshots]
137
+ report_string << " --screenshots"
138
+ end
139
+
140
+ unless arguments == ""
141
+ arguments << " "
142
+ end
143
+
144
+ arguments << report_string
128
145
  end
129
146
 
130
- xcpretty_args.push reports.join(" ")
147
+ xcpretty_args.push reports
131
148
 
132
149
  elsif params[:report_formats]
133
150
  # Test report file format
@@ -12,6 +12,10 @@ module Fastlane
12
12
  parse(content)
13
13
  end
14
14
 
15
+ def collector
16
+ @collector ||= ActionCollector.new
17
+ end
18
+
15
19
  def parse(data)
16
20
  @runner = Runner.new
17
21
 
@@ -60,6 +64,11 @@ module Fastlane
60
64
  end
61
65
  end
62
66
 
67
+ # Fastfile was finished executing
68
+ def did_finish
69
+ collector.did_finish
70
+ end
71
+
63
72
  def method_missing(method_sym, *arguments, &_block)
64
73
  # First, check if there is a predefined method in the actions folder
65
74
 
@@ -73,14 +82,21 @@ module Fastlane
73
82
  end
74
83
 
75
84
  if class_ref && class_ref.respond_to?(:run)
85
+ collector.did_launch_action(method_sym)
86
+
76
87
  step_name = class_ref.step_text rescue nil
77
88
  step_name = method_sym.to_s unless step_name
78
89
  Helper.log_alert("Step: " + step_name)
79
90
 
80
- Dir.chdir('..') do # go up from the fastlane folder, to the project folder
81
- Actions.execute_action(method_sym) do
82
- class_ref.run(arguments)
91
+ begin
92
+ Dir.chdir('..') do # go up from the fastlane folder, to the project folder
93
+ Actions.execute_action(method_sym) do
94
+ class_ref.run(arguments)
95
+ end
83
96
  end
97
+ rescue => ex
98
+ collector.did_raise_error(method_sym)
99
+ raise ex
84
100
  end
85
101
  else
86
102
  raise "Action '#{method_sym}' of class '#{class_name}' was found, but has no `run` method.".red
@@ -53,18 +53,22 @@ module Fastlane
53
53
  e = ex
54
54
  end
55
55
 
56
+ thread = ff.did_finish
57
+
56
58
  # Finished with all the lanes
57
59
  Fastlane::JUnitGenerator.generate(Fastlane::Actions.executed_actions)
58
60
 
59
61
  duration = ((Time.now - start) / 60.0).round
60
62
 
61
63
  unless e
64
+ thread.join # to wait for the request to be finished
62
65
  if duration > 5
63
66
  Helper.log.info "fastlane.tools just saved you #{duration} minutes! 🎉".green
64
67
  else
65
68
  Helper.log.info 'fastlane.tools finished successfully 🎉'.green
66
69
  end
67
70
  else
71
+ thread.join # to wait for the request to be finished
68
72
  Helper.log.fatal 'fastlane finished with errors'.red
69
73
  raise e
70
74
  end
@@ -1,3 +1,3 @@
1
1
  module Fastlane
2
- VERSION = '0.7.0'
2
+ VERSION = '0.8.0'
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: 0.7.0
4
+ version: 0.8.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: 2015-04-13 00:00:00.000000000 Z
11
+ date: 2015-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -98,9 +98,9 @@ dependencies:
98
98
  name: cupertino
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
- version: '1.3'
103
+ version: 1.3.2
104
104
  - - '>='
105
105
  - !ruby/object:Gem::Version
106
106
  version: 1.3.1
@@ -108,9 +108,9 @@ dependencies:
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
- - - ~>
111
+ - - '>='
112
112
  - !ruby/object:Gem::Version
113
- version: '1.3'
113
+ version: 1.3.2
114
114
  - - '>='
115
115
  - !ruby/object:Gem::Version
116
116
  version: 1.3.1
@@ -246,14 +246,14 @@ dependencies:
246
246
  requirements:
247
247
  - - '>='
248
248
  - !ruby/object:Gem::Version
249
- version: 0.1.4
249
+ version: 0.1.5
250
250
  type: :runtime
251
251
  prerelease: false
252
252
  version_requirements: !ruby/object:Gem::Requirement
253
253
  requirements:
254
254
  - - '>='
255
255
  - !ruby/object:Gem::Version
256
- version: 0.1.4
256
+ version: 0.1.5
257
257
  - !ruby/object:Gem::Dependency
258
258
  name: bundler
259
259
  requirement: !ruby/object:Gem::Requirement
@@ -384,6 +384,7 @@ files:
384
384
  - lib/assets/s3_plist_template.erb
385
385
  - lib/fastlane.rb
386
386
  - lib/fastlane/action.rb
387
+ - lib/fastlane/action_collector.rb
387
388
  - lib/fastlane/actions/README.md
388
389
  - lib/fastlane/actions/actions_helper.rb
389
390
  - lib/fastlane/actions/add_git_tag.rb
@@ -405,6 +406,7 @@ files:
405
406
  - lib/fastlane/actions/install_cocapods.rb
406
407
  - lib/fastlane/actions/ipa.rb
407
408
  - lib/fastlane/actions/notify.rb
409
+ - lib/fastlane/actions/opt_out_usage.rb
408
410
  - lib/fastlane/actions/produce.rb
409
411
  - lib/fastlane/actions/push_to_git_remote.rb
410
412
  - lib/fastlane/actions/register_devices.rb