fastlane 0.7.0 → 0.8.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: 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