fastlane 1.97.2 → 1.98.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/.DS_Store +0 -0
- data/lib/fastlane/.DS_Store +0 -0
- data/lib/fastlane/actions/actions_helper.rb +13 -0
- data/lib/fastlane/actions/add_git_tag.rb +16 -4
- data/lib/fastlane/actions/clipboard.rb +1 -1
- data/lib/fastlane/actions/copy_artifacts.rb +7 -4
- data/lib/fastlane/actions/default_platform.rb +1 -1
- data/lib/fastlane/actions/notification.rb +1 -1
- data/lib/fastlane/actions/notify.rb +1 -1
- data/lib/fastlane/actions/update_project_provisioning.rb +1 -1
- data/lib/fastlane/cli_tools_distributor.rb +43 -1
- data/lib/fastlane/fast_file.rb +5 -0
- data/lib/fastlane/lane.rb +27 -3
- data/lib/fastlane/one_off.rb +2 -5
- data/lib/fastlane/plugins/.DS_Store +0 -0
- data/lib/fastlane/plugins/template/.travis.yml +1 -1
- data/lib/fastlane/plugins/template/README.md.erb +1 -1
- data/lib/fastlane/plugins/template/circle.yml +1 -1
- data/lib/fastlane/runner.rb +1 -6
- data/lib/fastlane/setup/crashlytics_beta.rb +7 -4
- data/lib/fastlane/version.rb +1 -1
- metadata +11 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f16378edbabcd69c5f903140420acfe44d166c7
|
4
|
+
data.tar.gz: 90af73d800d00489162497032aebb4d9de19e248
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f7c8aa76a5b2afe13d06a363e0c2f1dbedebf0b759d3e58df24c62930724be515f3e561f9a522023b5beef08a1eb47405ab1b352402c2b3a2f98e8c4716888a
|
7
|
+
data.tar.gz: acfa0f72deaf2f82735844cc9a0e124e0c36c20cd9d71a2e1231980f90a8e424fdf5f9abc0e5812352bfb3cdd3b4df7fc47270bcf7204ae7157067067e2d56c8
|
data/README.md
CHANGED
@@ -89,7 +89,7 @@ fastlane appstore
|
|
89
89
|
:mountain_cableway: | Implement a fully working Continuous Delivery process
|
90
90
|
:ghost: | [Jenkins Integration](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Jenkins.md): Show the output directly in the Jenkins test results
|
91
91
|
:book: | Automatically generate a markdown documentation of your lane config
|
92
|
-
:hatching_chick: | Over
|
92
|
+
:hatching_chick: | Over 170 built-in integrations available
|
93
93
|
:computer: | Support for both iOS, Mac OS and Android apps
|
94
94
|
:octocat: | Full git and mercurial support
|
95
95
|
|
@@ -114,7 +114,7 @@ If you experience slow launch times of fastlane, try running
|
|
114
114
|
|
115
115
|
to clean up outdated gems.
|
116
116
|
|
117
|
-
System Requirements: `fastlane` requires
|
117
|
+
System Requirements: `fastlane` requires macOS or Linux with Ruby 2.0.0 or above.
|
118
118
|
|
119
119
|
|
120
120
|
If you want to take a look at a project, already using `fastlane`, check out the [fastlane-examples](https://github.com/fastlane/examples) with `fastlane` setups by Wikipedia, Product Hunt, MindNode and more.
|
data/lib/.DS_Store
ADDED
Binary file
|
Binary file
|
@@ -61,6 +61,19 @@ module Fastlane
|
|
61
61
|
end
|
62
62
|
# rubocop:enable Style/AccessorMethodName
|
63
63
|
|
64
|
+
# Returns the class ref to the action based on the action name
|
65
|
+
# Returns nil if the action is not aailable
|
66
|
+
def self.action_class_ref(action_name)
|
67
|
+
class_name = action_name.to_s.fastlane_class + 'Action'
|
68
|
+
class_ref = nil
|
69
|
+
begin
|
70
|
+
class_ref = Fastlane::Actions.const_get(class_name)
|
71
|
+
rescue NameError
|
72
|
+
return nil
|
73
|
+
end
|
74
|
+
return class_ref
|
75
|
+
end
|
76
|
+
|
64
77
|
def self.load_default_actions
|
65
78
|
Dir[File.expand_path('*.rb', File.dirname(__FILE__))].each do |file|
|
66
79
|
require file
|
@@ -8,8 +8,14 @@ module Fastlane
|
|
8
8
|
tag = options[:tag] || "#{options[:grouping]}/#{lane_name}/#{options[:prefix]}#{options[:build_number]}"
|
9
9
|
message = options[:message] || "#{tag} (fastlane)"
|
10
10
|
|
11
|
+
cmd = ['git tag']
|
12
|
+
|
13
|
+
cmd << ["-am #{message.shellescape}"]
|
14
|
+
cmd << '--force' if options[:force]
|
15
|
+
cmd << "'#{tag}'"
|
16
|
+
|
11
17
|
UI.message "Adding git tag '#{tag}' 🎯."
|
12
|
-
Actions.sh(
|
18
|
+
Actions.sh(cmd.join(' '))
|
13
19
|
end
|
14
20
|
|
15
21
|
def self.description
|
@@ -38,12 +44,18 @@ module Fastlane
|
|
38
44
|
FastlaneCore::ConfigItem.new(key: :message,
|
39
45
|
env_name: "FL_GIT_TAG_MESSAGE",
|
40
46
|
description: "The tag message. Defaults to the tag's name",
|
41
|
-
optional: true)
|
47
|
+
optional: true),
|
48
|
+
FastlaneCore::ConfigItem.new(key: :force,
|
49
|
+
env_name: "FL_GIT_TAG_FORCE",
|
50
|
+
description: "Force adding the tag",
|
51
|
+
optional: true,
|
52
|
+
is_string: false,
|
53
|
+
default_value: false)
|
42
54
|
]
|
43
55
|
end
|
44
56
|
|
45
|
-
def self.
|
46
|
-
"lmirosevic"
|
57
|
+
def self.authors
|
58
|
+
["lmirosevic", "maschall"]
|
47
59
|
end
|
48
60
|
|
49
61
|
def self.is_supported?(platform)
|
@@ -12,7 +12,7 @@ module Fastlane
|
|
12
12
|
#####################################################
|
13
13
|
|
14
14
|
def self.description
|
15
|
-
"Copies a given string into the clipboard. Works only on
|
15
|
+
"Copies a given string into the clipboard. Works only on macOS"
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.available_options
|
@@ -5,8 +5,11 @@ module Fastlane
|
|
5
5
|
module Actions
|
6
6
|
class CopyArtifactsAction < Action
|
7
7
|
def self.run(params)
|
8
|
+
# expand the path to make sure we can deal with relative paths
|
9
|
+
target_path = File.expand_path(params[:target_path])
|
10
|
+
|
8
11
|
# we want to make sure that our target folder exist already
|
9
|
-
FileUtils.mkdir_p(
|
12
|
+
FileUtils.mkdir_p(target_path)
|
10
13
|
|
11
14
|
# Ensure that artifacts is an array
|
12
15
|
artifacts_to_search = [params[:artifacts]].flatten
|
@@ -17,7 +20,7 @@ module Fastlane
|
|
17
20
|
# Lastly, we shell escape everything in case they contain incompatible symbols (e.g. spaces)
|
18
21
|
artifacts = artifacts_to_search.map { |f| f.include?("*") ? Dir.glob(f) : f }.flatten.map(&:shellescape)
|
19
22
|
|
20
|
-
UI.verbose("Copying artifacts #{artifacts.join(', ')} to #{
|
23
|
+
UI.verbose("Copying artifacts #{artifacts.join(', ')} to #{target_path}")
|
21
24
|
UI.verbose(params[:keep_original] ? "Keeping original files" : "Not keeping original files")
|
22
25
|
|
23
26
|
if params[:fail_on_missing]
|
@@ -29,9 +32,9 @@ module Fastlane
|
|
29
32
|
end
|
30
33
|
|
31
34
|
if params[:keep_original]
|
32
|
-
FileUtils.cp_r(artifacts,
|
35
|
+
FileUtils.cp_r(artifacts, target_path, remove_destination: true)
|
33
36
|
else
|
34
|
-
FileUtils.mv(artifacts,
|
37
|
+
FileUtils.mv(artifacts, target_path, force: true)
|
35
38
|
end
|
36
39
|
|
37
40
|
UI.success('Build artifacts successfully copied!')
|
@@ -5,7 +5,13 @@ module Fastlane
|
|
5
5
|
class CLIToolsDistributor
|
6
6
|
class << self
|
7
7
|
def take_off
|
8
|
-
|
8
|
+
before_import_time = Time.now
|
9
|
+
|
10
|
+
require "fastlane" # this might take a long time if there is no Gemfile :(
|
11
|
+
|
12
|
+
if Time.now - before_import_time > 3
|
13
|
+
print_slow_fastlane_warning
|
14
|
+
end
|
9
15
|
|
10
16
|
# Array of symbols for the names of the available lanes
|
11
17
|
# This doesn't actually use the Fastfile parser, but only
|
@@ -47,6 +53,42 @@ module Fastlane
|
|
47
53
|
Fastlane::CommandsGenerator.start
|
48
54
|
end
|
49
55
|
end
|
56
|
+
|
57
|
+
def print_slow_fastlane_warning
|
58
|
+
return if ENV['BUNDLE_BIN_PATH'] # `BUNDLE_BIN_PATH` is used when the user uses `bundle exec`
|
59
|
+
|
60
|
+
gemfile_path = PluginManager.new.gemfile_path
|
61
|
+
if gemfile_path
|
62
|
+
# The user has a Gemfile, but fastlane is still slow
|
63
|
+
# Let's tell the user how to use `bundle exec`
|
64
|
+
UI.important "Seems like launching fastlane takes a while"
|
65
|
+
UI.important "fastlane detected a Gemfile in this directory"
|
66
|
+
UI.important "however it seems like you don't use `bundle exec`"
|
67
|
+
UI.important "to launch fastlane faster, please use"
|
68
|
+
UI.message ""
|
69
|
+
UI.command "bundle exec fastlane #{ARGV.join(' ')}"
|
70
|
+
else
|
71
|
+
# fastlane is slow and there is no Gemfile
|
72
|
+
# Let's tell the user how to use `gem cleanup` and how to
|
73
|
+
# start using a Gemfile
|
74
|
+
UI.important "Seems like launching fastlane takes a while - please run"
|
75
|
+
UI.message ""
|
76
|
+
UI.command "[sudo] gem cleanup"
|
77
|
+
UI.message ""
|
78
|
+
UI.important "to uninstall outdated gems and make fastlane launch faster"
|
79
|
+
UI.important "Alternatively it's recommended to start using a Gemfile to lock your dependencies"
|
80
|
+
UI.important "To get started with a Gemfile, run"
|
81
|
+
UI.message ""
|
82
|
+
UI.command "bundle init"
|
83
|
+
UI.command "echo 'gem \"fastlane\"' >> Gemfile"
|
84
|
+
UI.command "bundle install"
|
85
|
+
UI.message ""
|
86
|
+
UI.important "After creating the Gemfile and Gemfile.lock, commit those files into version control"
|
87
|
+
end
|
88
|
+
UI.important "For more information, check out https://guides.cocoapods.org/using/a-gemfile.html"
|
89
|
+
|
90
|
+
sleep 1
|
91
|
+
end
|
50
92
|
end
|
51
93
|
end
|
52
94
|
end
|
data/lib/fastlane/fast_file.rb
CHANGED
@@ -264,5 +264,10 @@ module Fastlane
|
|
264
264
|
collector.did_launch_action(:puts)
|
265
265
|
Fastlane::Actions::PutsAction.run([value])
|
266
266
|
end
|
267
|
+
|
268
|
+
def test(params = {})
|
269
|
+
# Overwrite this, since there is already a 'test' method defined in the Ruby standard library
|
270
|
+
self.runner.try_switch_to_lane(:test, [params])
|
271
|
+
end
|
267
272
|
end
|
268
273
|
end
|
data/lib/fastlane/lane.rb
CHANGED
@@ -42,8 +42,8 @@ module Fastlane
|
|
42
42
|
# Makes sure the lane name is valid
|
43
43
|
def verify_lane_name(name)
|
44
44
|
if self.black_list.include?(name.to_s)
|
45
|
-
UI.error "Lane
|
46
|
-
UI.user_error!("
|
45
|
+
UI.error "Lane name '#{name}' is invalid! Invalid names are #{self.black_list.join(', ')}."
|
46
|
+
UI.user_error!("Lane name '#{name}' is invalid")
|
47
47
|
end
|
48
48
|
|
49
49
|
if self.gray_list.include?(name.to_sym)
|
@@ -52,15 +52,39 @@ module Fastlane
|
|
52
52
|
# We still allow it, because we're nice
|
53
53
|
# Otherwise we might break existing setups
|
54
54
|
end
|
55
|
+
|
56
|
+
self.ensure_name_not_conflicts(name.to_s)
|
55
57
|
end
|
56
58
|
|
57
59
|
def black_list
|
58
|
-
%w(
|
60
|
+
%w(
|
61
|
+
run
|
62
|
+
init
|
63
|
+
new_action
|
64
|
+
lanes
|
65
|
+
list
|
66
|
+
docs
|
67
|
+
action
|
68
|
+
actions
|
69
|
+
enable_auto_complete
|
70
|
+
new_plugin
|
71
|
+
add_plugin
|
72
|
+
install_plugins
|
73
|
+
update_plugins
|
74
|
+
search_plugins
|
75
|
+
help
|
76
|
+
)
|
59
77
|
end
|
60
78
|
|
61
79
|
def gray_list
|
62
80
|
Fastlane::TOOLS
|
63
81
|
end
|
82
|
+
|
83
|
+
def ensure_name_not_conflicts(name)
|
84
|
+
# First, check if there is a predefined method in the actions folder
|
85
|
+
return unless Actions.action_class_ref(name)
|
86
|
+
UI.error("Name of the lane '#{name}' is already taken by the action named '#{name}'")
|
87
|
+
end
|
64
88
|
end
|
65
89
|
end
|
66
90
|
end
|
data/lib/fastlane/one_off.rb
CHANGED
@@ -26,11 +26,8 @@ module Fastlane
|
|
26
26
|
def self.run(action: nil, parameters: nil)
|
27
27
|
Fastlane.load_actions
|
28
28
|
|
29
|
-
|
30
|
-
class_ref
|
31
|
-
begin
|
32
|
-
class_ref = Fastlane::Actions.const_get(class_name)
|
33
|
-
rescue NameError
|
29
|
+
class_ref = Actions.action_class_ref(action)
|
30
|
+
unless class_ref
|
34
31
|
if Fastlane::Actions.formerly_bundled_actions.include?(action)
|
35
32
|
# This was a formerly bundled action which is now a plugin.
|
36
33
|
UI.verbose(caller.join("\n"))
|
Binary file
|
data/lib/fastlane/runner.rb
CHANGED
@@ -91,12 +91,7 @@ module Fastlane
|
|
91
91
|
method_str.delete!('?') # as a `?` could be at the end of the method name
|
92
92
|
|
93
93
|
# First, check if there is a predefined method in the actions folder
|
94
|
-
|
95
|
-
class_ref = nil
|
96
|
-
begin
|
97
|
-
class_ref = Fastlane::Actions.const_get(class_name)
|
98
|
-
rescue NameError
|
99
|
-
end
|
94
|
+
class_ref = Actions.action_class_ref(method_str)
|
100
95
|
|
101
96
|
# It's important to *not* have this code inside the rescue block
|
102
97
|
# otherwise all NameErrors will be caught and the error message is
|
@@ -30,6 +30,7 @@ module Fastlane
|
|
30
30
|
UI.crash!("No project available at path #{path}") unless File.exist?(path)
|
31
31
|
xcode_project = Xcodeproj::Project.open(path)
|
32
32
|
target = xcode_project.targets.find { |t| t.name == target_name }
|
33
|
+
UI.crash!("Unable to locate a target by the name of #{target_name}") if target.nil?
|
33
34
|
scripts = target.build_phases.select { |t| t.class == Xcodeproj::Project::Object::PBXShellScriptBuildPhase }
|
34
35
|
crash_script = scripts.find { |s| includes_run_script?(s.shell_script) }
|
35
36
|
UI.user_error!("Unable to find Crashlytics Run Script Build Phase") if crash_script.nil?
|
@@ -73,10 +74,11 @@ module Fastlane
|
|
73
74
|
def lane_template(api_key, build_secret, scheme)
|
74
75
|
%{
|
75
76
|
lane :beta do
|
76
|
-
|
77
|
+
# set 'export_method' to 'ad-hoc' if your Crashlytics Beta distribution uses ad-hoc provisioning
|
78
|
+
gym(scheme: '#{scheme}', export_method: 'development')
|
77
79
|
crashlytics(api_token: '#{api_key}',
|
78
80
|
build_secret: '#{build_secret}',
|
79
|
-
notifications:
|
81
|
+
notifications: true
|
80
82
|
)
|
81
83
|
end
|
82
84
|
}
|
@@ -88,10 +90,11 @@ fastlane_version "#{Fastlane::VERSION}"
|
|
88
90
|
default_platform :ios
|
89
91
|
platform :ios do
|
90
92
|
lane :beta do
|
91
|
-
|
93
|
+
# set 'export_method' to 'ad-hoc' if your Crashlytics Beta distribution uses ad-hoc provisioning
|
94
|
+
gym(scheme: '#{scheme}', export_method: 'development')
|
92
95
|
crashlytics(api_token: '#{api_key}',
|
93
96
|
build_secret: '#{build_secret}',
|
94
|
-
notifications:
|
97
|
+
notifications: true
|
95
98
|
)
|
96
99
|
end
|
97
100
|
end
|
data/lib/fastlane/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.98.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2016-07-
|
18
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: krausefx-shenzhen
|
@@ -155,14 +155,14 @@ dependencies:
|
|
155
155
|
requirements:
|
156
156
|
- - "~>"
|
157
157
|
- !ruby/object:Gem::Version
|
158
|
-
version:
|
158
|
+
version: 2.0.0
|
159
159
|
type: :runtime
|
160
160
|
prerelease: false
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
162
162
|
requirements:
|
163
163
|
- - "~>"
|
164
164
|
- !ruby/object:Gem::Version
|
165
|
-
version:
|
165
|
+
version: 2.0.0
|
166
166
|
- !ruby/object:Gem::Dependency
|
167
167
|
name: word_wrap
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
@@ -237,7 +237,7 @@ dependencies:
|
|
237
237
|
requirements:
|
238
238
|
- - ">="
|
239
239
|
- !ruby/object:Gem::Version
|
240
|
-
version: 0.
|
240
|
+
version: 0.28.0
|
241
241
|
- - "<"
|
242
242
|
- !ruby/object:Gem::Version
|
243
243
|
version: 1.0.0
|
@@ -247,7 +247,7 @@ dependencies:
|
|
247
247
|
requirements:
|
248
248
|
- - ">="
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: 0.
|
250
|
+
version: 0.28.0
|
251
251
|
- - "<"
|
252
252
|
- !ruby/object:Gem::Version
|
253
253
|
version: 1.0.0
|
@@ -397,7 +397,7 @@ dependencies:
|
|
397
397
|
requirements:
|
398
398
|
- - ">="
|
399
399
|
- !ruby/object:Gem::Version
|
400
|
-
version: 1.
|
400
|
+
version: 1.7.0
|
401
401
|
- - "<"
|
402
402
|
- !ruby/object:Gem::Version
|
403
403
|
version: 2.0.0
|
@@ -407,7 +407,7 @@ dependencies:
|
|
407
407
|
requirements:
|
408
408
|
- - ">="
|
409
409
|
- !ruby/object:Gem::Version
|
410
|
-
version: 1.
|
410
|
+
version: 1.7.0
|
411
411
|
- - "<"
|
412
412
|
- !ruby/object:Gem::Version
|
413
413
|
version: 2.0.0
|
@@ -693,6 +693,7 @@ files:
|
|
693
693
|
- README.md
|
694
694
|
- bin/fastlane
|
695
695
|
- "bin/\U0001F680"
|
696
|
+
- lib/.DS_Store
|
696
697
|
- lib/assets/AppfileTemplate
|
697
698
|
- lib/assets/AppfileTemplateAndroid
|
698
699
|
- lib/assets/AvailablePlugins.md.erb
|
@@ -708,6 +709,7 @@ files:
|
|
708
709
|
- lib/assets/s3_plist_template.erb
|
709
710
|
- lib/assets/s3_version_template.erb
|
710
711
|
- lib/fastlane.rb
|
712
|
+
- lib/fastlane/.DS_Store
|
711
713
|
- lib/fastlane/action.rb
|
712
714
|
- lib/fastlane/action_collector.rb
|
713
715
|
- lib/fastlane/actions/README.md
|
@@ -911,6 +913,7 @@ files:
|
|
911
913
|
- lib/fastlane/new_action.rb
|
912
914
|
- lib/fastlane/one_off.rb
|
913
915
|
- lib/fastlane/other_action.rb
|
916
|
+
- lib/fastlane/plugins/.DS_Store
|
914
917
|
- lib/fastlane/plugins/plugin_fetcher.rb
|
915
918
|
- lib/fastlane/plugins/plugin_generator.rb
|
916
919
|
- lib/fastlane/plugins/plugin_generator_ui.rb
|