fastlane 0.13.0 → 1.0.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/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
|