fastlane 0.13.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/fastlane +1 -1
- data/lib/assets/FastfileTemplate +4 -4
- data/lib/fastlane/action_collector.rb +32 -21
- data/lib/fastlane/actions/actions_helper.rb +8 -1
- data/lib/fastlane/actions/add_git_tag.rb +1 -1
- data/lib/fastlane/actions/hockey.rb +13 -1
- data/lib/fastlane/docs_generator.rb +16 -6
- data/lib/fastlane/fast_file.rb +1 -1
- data/lib/fastlane/lane_manager.rb +2 -8
- data/lib/fastlane/version.rb +1 -1
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9a7aab25062916851a13d92b840da16aee451eb
|
4
|
+
data.tar.gz: 86a96f3e9773b64d41eb736f324b6ec956c40ce8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d62e6968031c18f2cbddb8562051937665d4aae4c3f38731a8d4797a1fdbfce56e3a9bd13ec3f4423df48b6380ecc0f718f1a06fd81e0654ca0da562284f028
|
7
|
+
data.tar.gz: 52fa58663e1f24b8dadebac97f08e4a71de7f6f1423a090a587053cb8750bb6bb0c502cfd71ac6b0d870cc93fe472ecb0f54a209d0f4d500b4579d0d88440770
|
data/bin/fastlane
CHANGED
@@ -17,7 +17,7 @@ class FastlaneApplication
|
|
17
17
|
program :help, 'Author', 'Felix Krause <fastlane@krausefx.com>'
|
18
18
|
program :help, 'Website', 'https://fastlane.tools'
|
19
19
|
program :help, 'GitHub', 'https://github.com/krausefx/fastlane'
|
20
|
-
|
20
|
+
program :help_formatter, :compact
|
21
21
|
|
22
22
|
always_trace!
|
23
23
|
|
data/lib/assets/FastfileTemplate
CHANGED
@@ -63,17 +63,17 @@ platform :ios do
|
|
63
63
|
after_all do |lane|
|
64
64
|
# This block is called, only if the executed lane was successful
|
65
65
|
|
66
|
-
# slack(
|
66
|
+
# slack(
|
67
67
|
# message: "Successfully deployed new App Update."
|
68
|
-
#
|
68
|
+
# )
|
69
69
|
end
|
70
70
|
|
71
71
|
|
72
72
|
error do |lane, exception|
|
73
|
-
# slack(
|
73
|
+
# slack(
|
74
74
|
# message: exception.message,
|
75
75
|
# success: false
|
76
|
-
#
|
76
|
+
# )
|
77
77
|
end
|
78
78
|
|
79
79
|
end
|
@@ -3,12 +3,16 @@ module Fastlane
|
|
3
3
|
HOST_URL = "https://fastlane-enhancer.herokuapp.com/"
|
4
4
|
|
5
5
|
def did_launch_action(name)
|
6
|
-
|
7
|
-
|
6
|
+
if is_official(name)
|
7
|
+
launches[name] ||= 0
|
8
|
+
launches[name] += 1
|
9
|
+
end
|
8
10
|
end
|
9
11
|
|
10
12
|
def did_raise_error(name)
|
11
|
-
|
13
|
+
if is_official(name)
|
14
|
+
@error = name
|
15
|
+
end
|
12
16
|
end
|
13
17
|
|
14
18
|
# Sends the used actions
|
@@ -16,25 +20,28 @@ module Fastlane
|
|
16
20
|
def did_finish
|
17
21
|
Thread.new do
|
18
22
|
unless ENV["FASTLANE_OPT_OUT_USAGE"]
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
begin
|
24
|
+
unless did_show_message?
|
25
|
+
Helper.log.debug("Sending Crash/Success information. More information on: https://github.com/fastlane/enhancer")
|
26
|
+
Helper.log.debug("No personal/sensitive data is sent. Only sharing the following:")
|
27
|
+
Helper.log.debug(launches)
|
28
|
+
Helper.log.debug(@error) if @error
|
29
|
+
Helper.log.debug("This information is used to fix failing actions and improve integrations that are often used.")
|
30
|
+
Helper.log.debug("You can disable this by adding `opt_out_usage` to your Fastfile")
|
31
|
+
end
|
28
32
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
require 'excon'
|
34
|
+
url = HOST_URL + '/did_launch?'
|
35
|
+
url += URI.encode_www_form(
|
36
|
+
steps: launches.to_json,
|
37
|
+
error: @error
|
38
|
+
)
|
35
39
|
|
36
|
-
|
37
|
-
|
40
|
+
unless Helper.is_test? # don't send test data
|
41
|
+
Excon.post(url)
|
42
|
+
end
|
43
|
+
rescue
|
44
|
+
# We don't care about connection errors
|
38
45
|
end
|
39
46
|
end
|
40
47
|
end
|
@@ -44,9 +51,13 @@ module Fastlane
|
|
44
51
|
@launches ||= {}
|
45
52
|
end
|
46
53
|
|
54
|
+
def is_official(name)
|
55
|
+
Actions.get_all_official_actions.include?name
|
56
|
+
end
|
57
|
+
|
47
58
|
def did_show_message?
|
48
59
|
path = File.join(File.expand_path('~'), '.did_show_opt_info')
|
49
|
-
|
60
|
+
|
50
61
|
did_show = File.exists?path
|
51
62
|
File.write(path, '1')
|
52
63
|
did_show
|
@@ -89,7 +89,14 @@ module Fastlane
|
|
89
89
|
s = `git rev-parse --abbrev-ref HEAD`
|
90
90
|
return s.to_s.strip if s.to_s.length > 0
|
91
91
|
nil
|
92
|
-
end
|
92
|
+
end
|
93
|
+
|
94
|
+
# returns a list of official integrations
|
95
|
+
def self.get_all_official_actions
|
96
|
+
Dir[File.expand_path '*.rb', File.dirname(__FILE__)].collect do |file|
|
97
|
+
File.basename(file).gsub('.rb', '').to_sym
|
98
|
+
end
|
99
|
+
end
|
93
100
|
|
94
101
|
def self.load_default_actions
|
95
102
|
Dir[File.expand_path '*.rb', File.dirname(__FILE__)].each do |file|
|
@@ -8,7 +8,7 @@ module Fastlane
|
|
8
8
|
tag = options[:tag] || "#{options[:grouping]}/#{lane_name}/#{options[:prefix]}#{options[:build_number].to_s}"
|
9
9
|
|
10
10
|
Helper.log.info "Adding git tag '#{tag}' 🎯."
|
11
|
-
Actions.sh("git tag #{tag}")
|
11
|
+
Actions.sh("git tag \"#{tag}\"")
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.description
|
@@ -100,7 +100,19 @@ module Fastlane
|
|
100
100
|
FastlaneCore::ConfigItem.new(key: :release_type,
|
101
101
|
env_name: "FL_HOCKEY_RELEASE_TYPE",
|
102
102
|
description: "Release type of the app",
|
103
|
-
default_value: "0")
|
103
|
+
default_value: "0"),
|
104
|
+
FastlaneCore::ConfigItem.new(key: :mandatory,
|
105
|
+
env_name: "FL_HOCKEY_MANDATORY",
|
106
|
+
description: "Set to 1 to make this update mandatory",
|
107
|
+
default_value: "0"),
|
108
|
+
FastlaneCore::ConfigItem.new(key: :teams,
|
109
|
+
env_name: "FL_HOCKEY_TEAMS",
|
110
|
+
description: "Comma separated list of team ID numbers to which this build will be restricted",
|
111
|
+
optional: true),
|
112
|
+
FastlaneCore::ConfigItem.new(key: :tags,
|
113
|
+
env_name: "FL_HOCKEY_TAGS",
|
114
|
+
description: "Comma separated list of tags which will receive access to the build",
|
115
|
+
optional: true)
|
104
116
|
]
|
105
117
|
end
|
106
118
|
|
@@ -12,18 +12,20 @@ module Fastlane
|
|
12
12
|
output << "# Available Actions"
|
13
13
|
|
14
14
|
all_keys = ff.runner.description_blocks.keys.reject(&:nil?)
|
15
|
-
all_keys.unshift(nil) # because we want root elements on top
|
15
|
+
all_keys.unshift(nil) # because we want root elements on top. always! They have key nil
|
16
16
|
|
17
17
|
all_keys.each do |platform|
|
18
|
-
output << "## #{platform}" if platform
|
18
|
+
output << "## #{formatted_platform(platform)}" if platform
|
19
19
|
|
20
20
|
value = ff.runner.description_blocks[platform]
|
21
21
|
|
22
|
-
value
|
23
|
-
|
24
|
-
|
22
|
+
if value
|
23
|
+
value.each do |lane, description|
|
24
|
+
output << render(platform, lane, description)
|
25
|
+
end
|
25
26
|
|
26
|
-
|
27
|
+
output << "----"
|
28
|
+
end
|
27
29
|
end
|
28
30
|
|
29
31
|
output << "More information about fastlane can be found on [https://fastlane.tools](https://fastlane.tools)."
|
@@ -35,6 +37,14 @@ module Fastlane
|
|
35
37
|
|
36
38
|
private
|
37
39
|
|
40
|
+
def self.formatted_platform(pl)
|
41
|
+
pl = pl.to_s
|
42
|
+
return "iOS" if pl == 'ios'
|
43
|
+
return "Mac" if pl == 'mac'
|
44
|
+
|
45
|
+
return pl
|
46
|
+
end
|
47
|
+
|
38
48
|
def self.render(platform, lane, description)
|
39
49
|
full_name = [platform, lane].reject(&:nil?).join(' ')
|
40
50
|
|
data/lib/fastlane/fast_file.rb
CHANGED
@@ -139,7 +139,7 @@ module Fastlane
|
|
139
139
|
def is_platform_block?(key)
|
140
140
|
raise 'No key given'.red unless key
|
141
141
|
|
142
|
-
return false if self.runner.blocks[nil][key.to_sym]
|
142
|
+
return false if (self.runner.blocks[nil][key.to_sym] rescue false)
|
143
143
|
return true if self.runner.blocks[key.to_sym].kind_of?Hash
|
144
144
|
|
145
145
|
raise "Could not find '#{key}'. Available lanes: #{self.runner.available_lanes.join(', ')}".red
|
@@ -52,14 +52,9 @@ module Fastlane
|
|
52
52
|
# Finished with all the lanes
|
53
53
|
Fastlane::JUnitGenerator.generate(Fastlane::Actions.executed_actions)
|
54
54
|
|
55
|
+
thread.join(5) # https://github.com/KrauseFx/fastlane/issues/240
|
55
56
|
|
56
57
|
unless error
|
57
|
-
begin
|
58
|
-
thread.join # to wait for the request to be finished
|
59
|
-
rescue
|
60
|
-
# We don't care about errors here
|
61
|
-
# https://github.com/KrauseFx/fastlane/issues/240
|
62
|
-
end
|
63
58
|
|
64
59
|
if duration > 5
|
65
60
|
Helper.log.info "fastlane.tools just saved you #{duration} minutes! 🎉".green
|
@@ -67,7 +62,6 @@ module Fastlane
|
|
67
62
|
Helper.log.info 'fastlane.tools finished successfully 🎉'.green
|
68
63
|
end
|
69
64
|
else
|
70
|
-
thread.join # to wait for the request to be finished
|
71
65
|
Helper.log.fatal 'fastlane finished with errors'.red
|
72
66
|
raise error
|
73
67
|
end
|
@@ -87,7 +81,7 @@ module Fastlane
|
|
87
81
|
i = $stdin.gets.strip.to_i - 1
|
88
82
|
if i >= 0 and (available[i] rescue nil)
|
89
83
|
selection = available[i]
|
90
|
-
Helper.log.info "Driving the lane #{selection}. Next time launch fastlane using `fastlane #{selection}`".
|
84
|
+
Helper.log.info "Driving the lane #{selection}. Next time launch fastlane using `fastlane #{selection}`".yellow
|
91
85
|
platform = selection.split(' ')[0]
|
92
86
|
lane_name = selection.split(' ')[1]
|
93
87
|
|
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: 1.0.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-05-
|
11
|
+
date: 2015-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.14.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.14.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: slack-notifier
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - '>='
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.7.
|
145
|
+
version: 0.7.2
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - '>='
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.7.
|
152
|
+
version: 0.7.2
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: deliver
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,14 +184,14 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - '>='
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 1.0.
|
187
|
+
version: 1.0.1
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - '>='
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 1.0.
|
194
|
+
version: 1.0.1
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: pem
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,42 +212,42 @@ dependencies:
|
|
212
212
|
requirements:
|
213
213
|
- - '>='
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: 0.5.
|
215
|
+
version: 0.5.1
|
216
216
|
type: :runtime
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - '>='
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 0.5.
|
222
|
+
version: 0.5.1
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: produce
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
227
|
- - '>='
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: 0.2.
|
229
|
+
version: 0.2.1
|
230
230
|
type: :runtime
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - '>='
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: 0.2.
|
236
|
+
version: 0.2.1
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: cert
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
241
|
- - '>='
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: 0.
|
243
|
+
version: 0.2.0
|
244
244
|
type: :runtime
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - '>='
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: 0.
|
250
|
+
version: 0.2.0
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: bundler
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|