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 +4 -4
- data/README.md +1 -1
- data/bin/fastlane +15 -1
- data/lib/assets/AppfileTemplate +5 -1
- data/lib/assets/FastfileTemplate +5 -1
- data/lib/assets/custom_action_template.rb +4 -2
- data/lib/fastlane.rb +1 -0
- data/lib/fastlane/action.rb +7 -0
- data/lib/fastlane/action_collector.rb +52 -0
- data/lib/fastlane/actions/deliver.rb +1 -1
- data/lib/fastlane/actions/hockey.rb +3 -3
- data/lib/fastlane/actions/increment_version_number.rb +1 -1
- data/lib/fastlane/actions/opt_out_usage.rb +27 -0
- data/lib/fastlane/actions/resign.rb +1 -1
- data/lib/fastlane/actions/xcodebuild.rb +23 -6
- data/lib/fastlane/fast_file.rb +19 -3
- data/lib/fastlane/lane_manager.rb +4 -0
- data/lib/fastlane/version.rb +1 -1
- metadata +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e853c65eb491960197f6a6490570114c267718f8
|
4
|
+
data.tar.gz: d21148557d3cd66ab6db4e5b08961914686e5d15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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))
|
data/bin/fastlane
CHANGED
@@ -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
|
-
|
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)
|
data/lib/assets/AppfileTemplate
CHANGED
@@ -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
|
data/lib/assets/FastfileTemplate
CHANGED
@@ -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
|
-
|
10
|
-
|
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"
|
data/lib/fastlane.rb
CHANGED
data/lib/fastlane/action.rb
CHANGED
@@ -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'
|
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
|
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']
|
@@ -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
|
@@ -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].
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
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
|
147
|
+
xcpretty_args.push reports
|
131
148
|
|
132
149
|
elsif params[:report_formats]
|
133
150
|
# Test report file format
|
data/lib/fastlane/fast_file.rb
CHANGED
@@ -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
|
-
|
81
|
-
|
82
|
-
|
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
|
data/lib/fastlane/version.rb
CHANGED
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.
|
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-
|
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:
|
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:
|
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.
|
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.
|
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
|