fastlane 1.83.0 → 1.84.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: 60c2d35ff4c95c5f0d1d0ea6372cededfe6385e0
4
- data.tar.gz: 644e24db7c298689a29b6ce5ad78a98c0922e2c4
3
+ metadata.gz: 1bb9bbb192fbf3dbd714c7f8f9eb75f60d2796e0
4
+ data.tar.gz: 2d99a2bff9ba0ef2292b9e0e9f2542b8c12f36f0
5
5
  SHA512:
6
- metadata.gz: 7e4a7cc4e96d6a1039b1d555caaf565a9f663295ef53c231dbd73ff59867049467d3488a65baeff9dea66f917d7e2d7c5db3783184f4e87feb4579f7d73b86b7
7
- data.tar.gz: 9d1d63ae3116d9a569345c63b8c43ebd37778825c3067ea7d19a7b36d7ee37e60f0e0c4e710f7fc1e20f6f651514a407460e07d6b4a11f28ccb3f8fd8b5fa60c
6
+ metadata.gz: 7d54ef40ffe53354560372fab441d084edebf43e817d817b7c286d821ac6eca5f29d7a4246e6d2483d2c5ed7f20befc19b405754b4889438b85f31f233ce821a
7
+ data.tar.gz: 765d86e6d751848d7bb27a3147202de3ae0987112227372bce3ece0bab577f9c61d3daa99aa47abe6f9f38a9662ac656a24b564e3b8864218357b7319638f173
data/bin/fastlane CHANGED
@@ -1,178 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
- # rubocop:disable Metrics/AbcSize
2
+ $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
3
3
 
4
- $LOAD_PATH.push File.expand_path('../../lib', __FILE__)
5
-
6
- require 'fastlane'
7
- require 'commander'
8
- require 'fastlane/new_action'
9
-
10
- HighLine.track_eof = false
11
-
12
- class FastlaneApplication
13
- include Commander::Methods
14
- UI = FastlaneCore::UI
15
-
16
- def run
17
- program :version, Fastlane::VERSION
18
- program :description, [
19
- "CLI for 'fastlane' - Connect all iOS deployment tools into one streamlined workflow.\n",
20
- "\tRun using `fastlane [platform] [lane_name]`",
21
- "\tTo pass values to the lanes use `fastlane [platform] [lane_name] key:value key2:value2`"].join("\n")
22
- program :help, 'Author', 'Felix Krause <fastlane@krausefx.com>'
23
- program :help, 'Website', 'https://fastlane.tools'
24
- program :help, 'GitHub', 'https://github.com/fastlane/fastlane'
25
- program :help_formatter, :compact
26
-
27
- global_option('--verbose') { $verbose = true }
28
-
29
- always_trace!
30
-
31
- command :trigger do |c|
32
- c.syntax = 'fastlane [lane]'
33
- c.description = 'Drive the fastlane for a specific environment. Pass the lane name and optionally the platform first'
34
- c.option '--env STRING', String, 'Add environment to use with `dotenv`'
35
-
36
- c.action do |args, options|
37
- if Fastlane::FastlaneFolder.setup?
38
- Fastlane::CommandLineHandler.handle(args, options)
39
- else
40
- create = agree('Could not find fastlane in current directory. Would you like to set it up? (y/n)'.yellow, true)
41
- Fastlane::Setup.new.run if create
42
- end
43
- end
44
- end
45
-
46
- command :init do |c|
47
- c.syntax = 'fastlane init'
48
- c.description = 'Helps you with your initial fastlane setup'
49
-
50
- c.action do |args, options|
51
- Fastlane::Setup.new.run
52
- end
53
- end
54
-
55
- command :new_action do |c|
56
- c.syntax = 'fastlane new_action'
57
- c.description = 'Create a new custom action for fastlane.'
58
-
59
- c.option '--name STRING', String, 'Name of your new action'
60
-
61
- c.action do |args, options|
62
- Fastlane::NewAction.run(new_action_name: options.name)
63
- end
64
- end
65
-
66
- command :lanes do |c|
67
- c.syntax = 'fastlane lanes'
68
- c.description = 'Lists all available lanes and shows their description'
69
- c.option "-j", "--json", "Output the lanes in JSON instead of text"
70
-
71
- c.action do |args, options|
72
- require 'fastlane/lane_list'
73
- path = File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile')
74
-
75
- if options.json
76
- Fastlane::LaneList.output_json(path)
77
- else
78
- Fastlane::LaneList.output(path)
79
- end
80
- end
81
- end
82
-
83
- command :list do |c|
84
- c.syntax = 'fastlane list'
85
- c.description = 'Lists all available lanes without description'
86
- c.action do |args, options|
87
- ff = Fastlane::FastFile.new(File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile'))
88
- UI.message "Available lanes:"
89
- ff.runner.available_lanes.each do |lane|
90
- UI.message "- #{lane}"
91
- end
92
- UI.important "Execute using `fastlane [lane_name]`"
93
- end
94
- end
95
-
96
- command :docs do |c|
97
- c.syntax = 'fastlane docs'
98
- c.description = 'Generate a markdown based documentation based on the Fastfile'
99
- c.option '-f', '--force', 'Overwrite the existing README.md in the ./fastlane folder'
100
-
101
- c.action do |args, options|
102
- ff = Fastlane::FastFile.new(File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile'))
103
- FastlaneCore::Helper.log.info "You don't need to run `fastlane docs` manually any more, this will be done automatically for you."
104
- Fastlane::DocsGenerator.run(ff)
105
- end
106
- end
107
-
108
- command :run do |c|
109
- c.syntax = 'fastlane run [action] key1:value1 key2:value2'
110
- c.description = 'Run a fastlane one-off action without a full lane'
111
-
112
- c.action do |args, options|
113
- require 'fastlane/one_off'
114
- result = Fastlane::OneOff.execute(args: args)
115
- UI.success "Result: #{result}" if result
116
- end
117
- end
118
-
119
- command :actions do |c|
120
- c.syntax = 'fastlane actions'
121
- c.description = 'Lists all available fastlane actions'
122
-
123
- c.option '--platform STRING', String, 'Only show actions available on the given platform'
124
-
125
- c.action do |args, options|
126
- require 'fastlane/documentation/actions_list'
127
- Fastlane::ActionsList.run(filter: args.first, platform: options.platform)
128
- end
129
- end
130
-
131
- command :action do |c|
132
- c.syntax = 'fastlane action [tool_name]'
133
- c.description = 'Shows more information for a specific command'
134
- c.action do |args, options|
135
- require 'fastlane/documentation/actions_list'
136
- Fastlane::ActionsList.run(filter: args.first)
137
- end
138
- end
139
-
140
- command :enable_crash_reporting do |c|
141
- c.syntax = 'fastlane enable_crash_reporting'
142
- c.description = 'Enable crash reporting to improve fastlane'
143
- c.action do |args, options|
144
- FastlaneCore::CrashReporting.enable
145
- end
146
- end
147
-
148
- command :disable_crash_reporting do |c|
149
- c.syntax = 'fastlane disable_crash_reporting'
150
- c.description = 'Disable crash reporting'
151
- c.action do |args, options|
152
- FastlaneCore::CrashReporting.disable
153
- end
154
- end
155
-
156
- command :enable_auto_complete do |c|
157
- c.syntax = 'fastlane enable_auto_complete'
158
- c.description = 'Enable tab auto completion'
159
-
160
- c.action do |args, options|
161
- require 'fastlane/auto_complete'
162
- Fastlane::AutoComplete.execute
163
- end
164
- end
165
-
166
- default_command :trigger
167
-
168
- run!
169
- end
170
- end
171
-
172
- begin
173
- FastlaneCore::UpdateChecker.start_looking_for_update('fastlane')
174
- FastlaneApplication.new.run
175
- ensure
176
- FastlaneCore::UpdateChecker.show_update_status('fastlane', Fastlane::VERSION)
177
- end
178
- # rubocop:enable Metrics/AbcSize
4
+ require "fastlane"
5
+ require "fastlane/commands_generator"
6
+ Fastlane::CommandsGenerator.start
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
3
+
4
+ require "fastlane"
5
+ require "fastlane/commands_generator"
6
+ Fastlane::CommandsGenerator.start
data/lib/fastlane.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'fastlane_core'
2
+
1
3
  require 'fastlane/core_ext/string' # this has to be above most of the other requires
2
4
  require 'fastlane/version'
3
5
  require 'fastlane/actions/actions_helper' # has to be before fast_file
@@ -15,8 +17,6 @@ require 'fastlane/configuration_helper'
15
17
  require 'fastlane/command_line_handler'
16
18
  require 'fastlane/documentation/docs_generator'
17
19
 
18
- require 'fastlane_core'
19
-
20
20
  module Fastlane
21
21
  Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
22
22
  UI = FastlaneCore::UI
@@ -1,68 +1,17 @@
1
1
  module Fastlane
2
- class ActionCollector
3
- HOST_URL = "https://fastlane-enhancer.herokuapp.com/"
4
-
5
- def did_launch_action(name)
6
- if is_official?(name)
7
- launches[name] ||= 0
8
- launches[name] += 1
9
- end
10
- end
11
-
12
- def did_raise_error(name)
13
- if is_official?(name)
14
- @error = name
15
- end
16
- end
17
-
18
- # Sends the used actions
19
- # Example data => [:xcode_select, :deliver, :notify, :slack]
20
- def did_finish
21
- return if ENV["FASTLANE_OPT_OUT_USAGE"]
22
- if !did_show_message? and !Helper.is_ci?
23
- UI.message("Sending Crash/Success information. More information on: https://github.com/fastlane/enhancer")
24
- UI.message("No personal/sensitive data is sent. Only sharing the following:")
25
- UI.message(launches)
26
- UI.message(@error) if @error
27
- UI.message("This information is used to fix failing actions and improve integrations that are often used.")
28
- UI.message("You can disable this by adding `opt_out_usage` to your Fastfile")
29
- end
30
-
31
- require 'excon'
32
- url = HOST_URL + '/did_launch?'
33
- url += URI.encode_www_form(
34
- steps: launches.to_json,
35
- error: @error
36
- )
37
-
38
- unless Helper.is_test? # don't send test data
39
- fork do
40
- begin
41
- Excon.post(url)
42
- rescue
43
- # we don't want to show a stack trace if something goes wrong
44
- end
45
- end
46
- end
47
- rescue
48
- # We don't care about connection errors
49
- end
50
-
51
- def launches
52
- @launches ||= {}
53
- end
54
-
2
+ class ActionCollector < FastlaneCore::ToolCollector
55
3
  def is_official?(name)
56
4
  return true if name == :lane_switch
57
5
  Actions.get_all_official_actions.include? name
58
6
  end
59
7
 
60
- def did_show_message?
61
- path = File.join(File.expand_path('~'), '.did_show_opt_info')
62
-
63
- did_show = File.exist? path
64
- File.write(path, '1')
65
- did_show
8
+ def show_message
9
+ UI.message("Sending Crash/Success information. More information on: https://github.com/fastlane/enhancer")
10
+ UI.message("No personal/sensitive data is sent. Only sharing the following:")
11
+ UI.message(launches)
12
+ UI.message(@error) if @error
13
+ UI.message("This information is used to fix failing actions and improve integrations that are often used.")
14
+ UI.message("You can disable this by adding `opt_out_usage` to your Fastfile")
66
15
  end
67
16
  end
68
17
  end
@@ -9,11 +9,11 @@ module Fastlane
9
9
 
10
10
  if Helper.is_ci? || Helper.is_test?
11
11
  # The "BUILD_URL" environment variable is set automatically by Jenkins in every build
12
- jenkins_xml_url = URI(ENV["BUILD_URL"] + "api/json\?wrapper\=changes\&xpath\=//changeSet//comment")
12
+ jenkins_api_url = URI(ENV["BUILD_URL"] + "api/json\?wrapper\=changes\&xpath\=//changeSet//comment")
13
13
  begin
14
- json = JSON.parse(Net::HTTP.get(jenkins_xml_url))
14
+ json = JSON.parse(Net::HTTP.get(jenkins_api_url))
15
15
  json['changeSet']['items'].each do |item|
16
- comment = item['comment']
16
+ comment = params[:include_commit_body] ? item['comment'] : item['msg']
17
17
  changelog << comment.strip + "\n"
18
18
  end
19
19
  rescue => ex
@@ -37,7 +37,12 @@ module Fastlane
37
37
  FastlaneCore::ConfigItem.new(key: :fallback_changelog,
38
38
  description: "Fallback changelog if there is not one on Jenkins, or it couldn't be read",
39
39
  optional: true,
40
- default_value: "")
40
+ default_value: ""),
41
+ FastlaneCore::ConfigItem.new(key: :include_commit_body,
42
+ description: "Include the commit body along with the summary",
43
+ optional: true,
44
+ is_string: false,
45
+ default_value: true)
41
46
  ]
42
47
  end
43
48
 
@@ -0,0 +1,84 @@
1
+ module Fastlane
2
+ module Actions
3
+ class PodLibLintAction < Action
4
+ def self.run(params)
5
+ command = []
6
+
7
+ if File.exist?("Gemfile") && params[:use_bundle_exec]
8
+ command << "bundle exec"
9
+ end
10
+
11
+ command << "pod lib lint"
12
+
13
+ if params[:verbose]
14
+ command << "--verbose"
15
+ end
16
+
17
+ if params[:sources]
18
+ sources = params[:sources].join(",")
19
+ command << "--sources='#{sources}'"
20
+ end
21
+
22
+ if params[:allow_warnings]
23
+ command << "--allow-warnings"
24
+ end
25
+
26
+ result = Actions.sh(command.join(' '))
27
+ Helper.log.info "Pod lib lint Successfully ⬆️ ".green
28
+ return result
29
+ end
30
+
31
+ #####################################################
32
+ # @!group Documentation
33
+ #####################################################
34
+
35
+ def self.description
36
+ "Pod lib lint"
37
+ end
38
+
39
+ def self.details
40
+ "Test the syntax of your Podfile by linting the pod against the files of its directory"
41
+ end
42
+
43
+ def self.available_options
44
+ [
45
+ FastlaneCore::ConfigItem.new(key: :use_bundle_exec,
46
+ description: "Use bundle exec when there is a Gemfile presented",
47
+ is_string: false,
48
+ default_value: true),
49
+ FastlaneCore::ConfigItem.new(key: :verbose,
50
+ description: "Allow ouput detail in console",
51
+ optional: true,
52
+ is_string: false),
53
+ FastlaneCore::ConfigItem.new(key: :allow_warnings,
54
+ description: "Allow warnings during pod lint",
55
+ optional: true,
56
+ is_string: false),
57
+ FastlaneCore::ConfigItem.new(key: :sources,
58
+ description: "The sources of repos you want the pod spec to lint with, separated by commas",
59
+ optional: true,
60
+ is_string: false,
61
+ verify_block: proc do |value|
62
+ raise "Sources must be an array.".red unless value.kind_of?(Array)
63
+ end)
64
+ ]
65
+ end
66
+
67
+ def self.output
68
+ end
69
+
70
+ def self.return_value
71
+ nil
72
+ end
73
+
74
+ def self.authors
75
+ ["thierryxing"]
76
+ end
77
+
78
+ def self.is_supported?(platform)
79
+ true
80
+ end
81
+
82
+ end
83
+ end
84
+ end
@@ -17,7 +17,10 @@ module Fastlane
17
17
 
18
18
  return params[:ipa] if Helper.test?
19
19
 
20
- response = client.upload_build(params[:ipa], params.values)
20
+ client_options = params.values
21
+ client_options[:testers_groups] = params[:testers_groups].join(',')
22
+
23
+ response = client.upload_build(params[:ipa], client_options)
21
24
  if parse_response(response)
22
25
  UI.success("Build URL: #{Actions.lane_context[SharedValues::TESTFAIRY_BUILD_URL]}")
23
26
  UI.success("Build successfully uploaded to TestFairy.")
@@ -67,7 +70,13 @@ module Fastlane
67
70
  FastlaneCore::ConfigItem.new(key: :comment,
68
71
  env_name: "FL_TESTFAIRY_COMMENT",
69
72
  description: "Additional release notes for this upload. This text will be added to email notifications",
70
- default_value: 'No comment provided') # the default value if the user didn't provide one
73
+ default_value: 'No comment provided'), # the default value if the user didn't provide one
74
+ FastlaneCore::ConfigItem.new(key: :testers_groups,
75
+ type: Array,
76
+ short_option: '-g',
77
+ env_name: "FL_TESTFAIRY_TESTERS_GROUPS",
78
+ description: "Array of tester groups to be notified",
79
+ default_value: []) # the default value is an empty list
71
80
  ]
72
81
  end
73
82
 
@@ -120,7 +120,7 @@ module Fastlane
120
120
  end),
121
121
  FastlaneCore::ConfigItem.new(key: :binary_path,
122
122
  env_name: "FL_UPLOAD_SYMBOLS_TO_CRASHLYTICS_BINARY_PATH",
123
- description: "The path to the upload-symbols file",
123
+ description: "The path to the upload-symbols file of the Fabric app",
124
124
  optional: true,
125
125
  verify_block: proc do |value|
126
126
  UI.user_error!("Couldn't find file at path '#{value}'") unless File.exist?(value)
@@ -0,0 +1,177 @@
1
+ require 'commander'
2
+ require 'fastlane/new_action'
3
+
4
+ HighLine.track_eof = false
5
+
6
+ module Fastlane
7
+ class CommandsGenerator
8
+ include Commander::Methods
9
+
10
+ def self.start
11
+ FastlaneCore::UpdateChecker.start_looking_for_update('fastlane')
12
+ self.new.run
13
+ ensure
14
+ FastlaneCore::UpdateChecker.show_update_status('fastlane', Fastlane::VERSION)
15
+ end
16
+
17
+ # rubocop:disable Metrics/AbcSize
18
+ # rubocop:disable Metrics/MethodLength
19
+ def run
20
+ program :version, Fastlane::VERSION
21
+ program :description, [
22
+ "CLI for 'fastlane' - #{Fastlane::DESCRIPTION}\n",
23
+ "\tRun using `fastlane [platform] [lane_name]`",
24
+ "\tTo pass values to the lanes use `fastlane [platform] [lane_name] key:value key2:value2`"].join("\n")
25
+ program :help, 'Author', 'Felix Krause <fastlane@krausefx.com>'
26
+ program :help, 'Website', 'https://fastlane.tools'
27
+ program :help, 'GitHub', 'https://github.com/fastlane/fastlane'
28
+ program :help_formatter, :compact
29
+
30
+ global_option('--verbose') { $verbose = true }
31
+
32
+ always_trace!
33
+
34
+ command :trigger do |c|
35
+ c.syntax = 'fastlane [lane]'
36
+ c.description = 'Drive the fastlane for a specific environment. Pass the lane name and optionally the platform first'
37
+ c.option '--env STRING', String, 'Add environment to use with `dotenv`'
38
+
39
+ c.action do |args, options|
40
+ if Fastlane::FastlaneFolder.setup?
41
+ Fastlane::CommandLineHandler.handle(args, options)
42
+ else
43
+ create = agree('Could not find fastlane in current directory. Would you like to set it up? (y/n)'.yellow, true)
44
+ Fastlane::Setup.new.run if create
45
+ end
46
+ end
47
+ end
48
+
49
+ command :init do |c|
50
+ c.syntax = 'fastlane init'
51
+ c.description = 'Helps you with your initial fastlane setup'
52
+
53
+ c.action do |args, options|
54
+ Fastlane::Setup.new.run
55
+ end
56
+ end
57
+
58
+ command :new_action do |c|
59
+ c.syntax = 'fastlane new_action'
60
+ c.description = 'Create a new custom action for fastlane.'
61
+
62
+ c.option '--name STRING', String, 'Name of your new action'
63
+
64
+ c.action do |args, options|
65
+ Fastlane::NewAction.run(new_action_name: options.name)
66
+ end
67
+ end
68
+
69
+ command :lanes do |c|
70
+ c.syntax = 'fastlane lanes'
71
+ c.description = 'Lists all available lanes and shows their description'
72
+ c.option "-j", "--json", "Output the lanes in JSON instead of text"
73
+
74
+ c.action do |args, options|
75
+ require 'fastlane/lane_list'
76
+ path = File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile')
77
+
78
+ if options.json
79
+ Fastlane::LaneList.output_json(path)
80
+ else
81
+ Fastlane::LaneList.output(path)
82
+ end
83
+ end
84
+ end
85
+
86
+ command :list do |c|
87
+ c.syntax = 'fastlane list'
88
+ c.description = 'Lists all available lanes without description'
89
+ c.action do |args, options|
90
+ ff = Fastlane::FastFile.new(File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile'))
91
+ UI.message "Available lanes:"
92
+ ff.runner.available_lanes.each do |lane|
93
+ UI.message "- #{lane}"
94
+ end
95
+ UI.important "Execute using `fastlane [lane_name]`"
96
+ end
97
+ end
98
+
99
+ command :docs do |c|
100
+ c.syntax = 'fastlane docs'
101
+ c.description = 'Generate a markdown based documentation based on the Fastfile'
102
+ c.option '-f', '--force', 'Overwrite the existing README.md in the ./fastlane folder'
103
+
104
+ c.action do |args, options|
105
+ ff = Fastlane::FastFile.new(File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile'))
106
+ FastlaneCore::Helper.log.info "You don't need to run `fastlane docs` manually any more, this will be done automatically for you."
107
+ Fastlane::DocsGenerator.run(ff)
108
+ end
109
+ end
110
+
111
+ command :run do |c|
112
+ c.syntax = 'fastlane run [action] key1:value1 key2:value2'
113
+ c.description = 'Run a fastlane one-off action without a full lane'
114
+
115
+ c.action do |args, options|
116
+ require 'fastlane/one_off'
117
+ result = Fastlane::OneOff.execute(args: args)
118
+ UI.success "Result: #{result}" if result
119
+ end
120
+ end
121
+
122
+ command :actions do |c|
123
+ c.syntax = 'fastlane actions'
124
+ c.description = 'Lists all available fastlane actions'
125
+
126
+ c.option '--platform STRING', String, 'Only show actions available on the given platform'
127
+
128
+ c.action do |args, options|
129
+ require 'fastlane/documentation/actions_list'
130
+ Fastlane::ActionsList.run(filter: args.first, platform: options.platform)
131
+ end
132
+ end
133
+
134
+ command :action do |c|
135
+ c.syntax = 'fastlane action [tool_name]'
136
+ c.description = 'Shows more information for a specific command'
137
+ c.action do |args, options|
138
+ require 'fastlane/documentation/actions_list'
139
+ Fastlane::ActionsList.run(filter: args.first)
140
+ end
141
+ end
142
+
143
+ command :enable_crash_reporting do |c|
144
+ c.syntax = 'fastlane enable_crash_reporting'
145
+ c.description = 'Enable crash reporting to improve fastlane'
146
+ c.action do |args, options|
147
+ FastlaneCore::CrashReporting.enable
148
+ end
149
+ end
150
+
151
+ command :disable_crash_reporting do |c|
152
+ c.syntax = 'fastlane disable_crash_reporting'
153
+ c.description = 'Disable crash reporting'
154
+ c.action do |args, options|
155
+ FastlaneCore::CrashReporting.disable
156
+ end
157
+ end
158
+
159
+ command :enable_auto_complete do |c|
160
+ c.syntax = 'fastlane enable_auto_complete'
161
+ c.description = 'Enable tab auto completion'
162
+
163
+ c.action do |args, options|
164
+ require 'fastlane/auto_complete'
165
+ Fastlane::AutoComplete.execute
166
+ end
167
+ end
168
+
169
+ default_command :trigger
170
+
171
+ run!
172
+ end
173
+
174
+ # rubocop:enable Metrics/AbcSize
175
+ # rubocop:enable Metrics/MethodLength
176
+ end
177
+ end
@@ -110,7 +110,7 @@ module Fastlane
110
110
 
111
111
  rows = []
112
112
  available.each_with_index do |lane, index|
113
- rows << [index + 1, lane.last.pretty_name, lane.last.description.first]
113
+ rows << [index + 1, lane.last.pretty_name, lane.last.description.join("\n")]
114
114
  end
115
115
 
116
116
  rows << [0, "cancel", "No selection, exit fastlane!"]
@@ -1,3 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '1.83.0'.freeze
2
+ VERSION = '1.84.0'.freeze
3
+ DESCRIPTION = "The easiest way to automate building and releasing your iOS and Android apps"
3
4
  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: 1.83.0
4
+ version: 1.84.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: 2016-04-28 00:00:00.000000000 Z
11
+ date: 2016-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: krausefx-shenzhen
@@ -148,7 +148,7 @@ dependencies:
148
148
  requirements:
149
149
  - - ">="
150
150
  - !ruby/object:Gem::Version
151
- version: 0.42.1
151
+ version: 0.43.1
152
152
  - - "<"
153
153
  - !ruby/object:Gem::Version
154
154
  version: 1.0.0
@@ -158,7 +158,7 @@ dependencies:
158
158
  requirements:
159
159
  - - ">="
160
160
  - !ruby/object:Gem::Version
161
- version: 0.42.1
161
+ version: 0.43.1
162
162
  - - "<"
163
163
  - !ruby/object:Gem::Version
164
164
  version: 1.0.0
@@ -188,7 +188,7 @@ dependencies:
188
188
  requirements:
189
189
  - - ">="
190
190
  - !ruby/object:Gem::Version
191
- version: 0.26.1
191
+ version: 0.26.2
192
192
  - - "<"
193
193
  - !ruby/object:Gem::Version
194
194
  version: 1.0.0
@@ -198,7 +198,7 @@ dependencies:
198
198
  requirements:
199
199
  - - ">="
200
200
  - !ruby/object:Gem::Version
201
- version: 0.26.1
201
+ version: 0.26.2
202
202
  - - "<"
203
203
  - !ruby/object:Gem::Version
204
204
  version: 1.0.0
@@ -248,7 +248,7 @@ dependencies:
248
248
  requirements:
249
249
  - - ">="
250
250
  - !ruby/object:Gem::Version
251
- version: 2.5.1
251
+ version: 2.6.0
252
252
  - - "<"
253
253
  - !ruby/object:Gem::Version
254
254
  version: 3.0.0
@@ -258,7 +258,7 @@ dependencies:
258
258
  requirements:
259
259
  - - ">="
260
260
  - !ruby/object:Gem::Version
261
- version: 2.5.1
261
+ version: 2.6.0
262
262
  - - "<"
263
263
  - !ruby/object:Gem::Version
264
264
  version: 3.0.0
@@ -644,17 +644,20 @@ dependencies:
644
644
  - - "~>"
645
645
  - !ruby/object:Gem::Version
646
646
  version: 0.8.1
647
- description: Connect all iOS deployment tools into one streamlined workflow
647
+ description: The easiest way to automate building and releasing your iOS and Android
648
+ apps
648
649
  email:
649
650
  - fastlane@krausefx.com
650
651
  executables:
651
652
  - fastlane
653
+ - "\U0001F680"
652
654
  extensions: []
653
655
  extra_rdoc_files: []
654
656
  files:
655
657
  - LICENSE
656
658
  - README.md
657
659
  - bin/fastlane
660
+ - "bin/\U0001F680"
658
661
  - lib/assets/AppfileTemplate
659
662
  - lib/assets/AppfileTemplateAndroid
660
663
  - lib/assets/DefaultFastfileTemplate
@@ -767,6 +770,7 @@ files:
767
770
  - lib/fastlane/actions/opt_out_usage.rb
768
771
  - lib/fastlane/actions/pem.rb
769
772
  - lib/fastlane/actions/pilot.rb
773
+ - lib/fastlane/actions/pod_lib_lint.rb
770
774
  - lib/fastlane/actions/pod_push.rb
771
775
  - lib/fastlane/actions/podio_item.rb
772
776
  - lib/fastlane/actions/produce.rb
@@ -838,6 +842,7 @@ files:
838
842
  - lib/fastlane/actions/zip.rb
839
843
  - lib/fastlane/auto_complete.rb
840
844
  - lib/fastlane/command_line_handler.rb
845
+ - lib/fastlane/commands_generator.rb
841
846
  - lib/fastlane/configuration_helper.rb
842
847
  - lib/fastlane/core_ext/bundler_monkey_patch.rb
843
848
  - lib/fastlane/core_ext/string.rb
@@ -886,9 +891,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
886
891
  version: '0'
887
892
  requirements: []
888
893
  rubyforge_project:
889
- rubygems_version: 2.2.2
894
+ rubygems_version: 2.4.5.1
890
895
  signing_key:
891
896
  specification_version: 4
892
- summary: Connect all iOS deployment tools into one streamlined workflow
897
+ summary: The easiest way to automate building and releasing your iOS and Android apps
893
898
  test_files: []
894
899
  has_rdoc: