fastlane 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/lib/assets/FastfileTemplate +3 -0
  3. data/lib/fastlane.rb +1 -0
  4. data/lib/fastlane/action.rb +5 -0
  5. data/lib/fastlane/action_collector.rb +3 -1
  6. data/lib/fastlane/actions/actions_helper.rb +5 -0
  7. data/lib/fastlane/actions/add_git_tag.rb +21 -15
  8. data/lib/fastlane/actions/cert.rb +2 -2
  9. data/lib/fastlane/actions/clean_build_artifacts.rb +1 -1
  10. data/lib/fastlane/actions/commit_version_bump.rb +15 -8
  11. data/lib/fastlane/actions/crashlytics.rb +51 -66
  12. data/lib/fastlane/actions/deliver.rb +32 -15
  13. data/lib/fastlane/actions/deploygate.rb +29 -22
  14. data/lib/fastlane/actions/ensure_git_status_clean.rb +1 -1
  15. data/lib/fastlane/actions/frameit.rb +2 -2
  16. data/lib/fastlane/actions/gcovr.rb +2 -2
  17. data/lib/fastlane/actions/hipchat.rb +36 -23
  18. data/lib/fastlane/actions/hockey.rb +37 -23
  19. data/lib/fastlane/actions/increment_build_number.rb +14 -19
  20. data/lib/fastlane/actions/increment_version_number.rb +42 -44
  21. data/lib/fastlane/actions/install_carthage.rb +1 -1
  22. data/lib/fastlane/actions/install_cocapods.rb +1 -1
  23. data/lib/fastlane/actions/ipa.rb +69 -47
  24. data/lib/fastlane/actions/notify.rb +1 -1
  25. data/lib/fastlane/actions/pem.rb +1 -1
  26. data/lib/fastlane/actions/produce.rb +3 -4
  27. data/lib/fastlane/actions/push_to_git_remote.rb +24 -14
  28. data/lib/fastlane/actions/register_devices.rb +23 -11
  29. data/lib/fastlane/actions/reset_git_repo.rb +13 -5
  30. data/lib/fastlane/actions/resign.rb +19 -16
  31. data/lib/fastlane/actions/s3.rb +56 -37
  32. data/lib/fastlane/actions/sigh.rb +1 -1
  33. data/lib/fastlane/actions/slack.rb +31 -13
  34. data/lib/fastlane/actions/snapshot.rb +13 -6
  35. data/lib/fastlane/actions/team_id.rb +1 -1
  36. data/lib/fastlane/actions/team_name.rb +1 -1
  37. data/lib/fastlane/actions/testmunk.rb +28 -14
  38. data/lib/fastlane/actions/typetalk.rb +1 -1
  39. data/lib/fastlane/actions/update_fastlane.rb +115 -0
  40. data/lib/fastlane/actions/update_project_code_signing.rb +22 -7
  41. data/lib/fastlane/actions/xcode_select.rb +1 -1
  42. data/lib/fastlane/actions/xcodebuild.rb +56 -12
  43. data/lib/fastlane/actions_list.rb +2 -2
  44. data/lib/fastlane/configuration_helper.rb +28 -0
  45. data/lib/fastlane/fast_file.rb +17 -0
  46. data/lib/fastlane/fastlane_folder.rb +3 -3
  47. data/lib/fastlane/setup.rb +11 -5
  48. data/lib/fastlane/version.rb +1 -1
  49. metadata +7 -5
@@ -12,7 +12,7 @@ module Fastlane
12
12
  "Shows a Mac OS X notification"
13
13
  end
14
14
 
15
- def author
15
+ def self.author
16
16
  "champo"
17
17
  end
18
18
 
@@ -13,7 +13,7 @@ module Fastlane
13
13
  values = params.first
14
14
 
15
15
  begin
16
- FastlaneCore::UpdateChecker.start_looking_for_update('pem')
16
+ FastlaneCore::UpdateChecker.start_looking_for_update('pem') unless Helper.is_test?
17
17
 
18
18
  success_block = values[:new_profile]
19
19
  values.delete(:new_profile) # as it's not in the configs
@@ -8,16 +8,15 @@ module Fastlane
8
8
  def self.run(params)
9
9
  require 'produce'
10
10
 
11
- hash = params.first || {}
12
- raise 'Parameter of produce must be a hash'.red unless hash.is_a?(Hash)
11
+ raise 'Parameter of produce must be a hash'.red unless params.is_a?(Hash)
13
12
 
14
- hash.each do |key, value|
13
+ params.each do |key, value|
15
14
  ENV[key.to_s.upcase] = value.to_s
16
15
  end
17
16
 
18
17
  return if Helper.test?
19
18
 
20
- FastlaneCore::UpdateChecker.start_looking_for_update('produce')
19
+ FastlaneCore::UpdateChecker.start_looking_for_update('produce') unless Helper.is_test?
21
20
 
22
21
  begin
23
22
  Dir.chdir(FastlaneFolder.path || Dir.pwd) do
@@ -3,29 +3,26 @@ module Fastlane
3
3
  # Adds a git tag to the current commit
4
4
  class PushToGitRemoteAction < Action
5
5
  def self.run(params)
6
- options = params.first
7
-
8
- remote = (options && options[:remote]) || 'origin'
9
- force = (options && options[:force]) || false
10
- local_branch = (options && (options[:local_branch] || options[:branch])) || Actions.git_branch.gsub(/#{remote}\//, '') || 'master'
11
- remote_branch = (options && options[:remote_branch]) || local_branch
6
+ local_branch = params[:local_branch] || (Actions.git_branch.gsub(/#{params[:remote]}\//, '') rescue nil) || 'master'
7
+ remote_branch = params[:remote_branch] || local_branch
12
8
 
13
9
  # construct our command as an array of components
14
10
  command = [
15
11
  'git',
16
12
  'push',
17
- remote,
13
+ params[:remote],
18
14
  "#{local_branch}:#{remote_branch}",
19
15
  '--tags'
20
16
  ]
21
17
 
22
18
  # optionally add the force component
23
- command << '--force' if force
19
+ command << '--force' if params[:force]
24
20
 
25
21
  # execute our command
26
- puts Actions.sh('pwd')
27
- Actions.sh(command.join(' '))
22
+ Actions.sh('pwd')
23
+ return command.join(' ') if Helper.is_test?
28
24
 
25
+ Actions.sh(command.join(' '))
29
26
  Helper.log.info 'Sucesfully pushed to remote.'
30
27
  end
31
28
 
@@ -35,10 +32,23 @@ module Fastlane
35
32
 
36
33
  def self.available_options
37
34
  [
38
- ['remote', 'The remote to push to. Defaults to `origin`'],
39
- ['branch', 'The local branch to push from. Defaults to the current branch'],
40
- ['branch', 'The remote branch to push to. Defaults to the local branch'],
41
- ['force', 'Force push to remote. Defaults to false']
35
+ FastlaneCore::ConfigItem.new(key: :local_branch,
36
+ env_name: "FL_GIT_PUSH_LOCAL_BRANCH",
37
+ description: "The local branch to push from. Defaults to the current branch",
38
+ optional: true),
39
+ FastlaneCore::ConfigItem.new(key: :remote_branch,
40
+ env_name: "FL_GIT_PUSH_REMOTE_BRANCH",
41
+ description: "The remote branch to push to. Defaults to the local branch",
42
+ optional: true),
43
+ FastlaneCore::ConfigItem.new(key: :force,
44
+ env_name: "FL_PUSH_GIT_FORCE",
45
+ description: "Force push to remote. Defaults to false",
46
+ is_string: false,
47
+ default_value: false),
48
+ FastlaneCore::ConfigItem.new(key: :remote,
49
+ env_name: "FL_GIT_PUSH_REMOTE",
50
+ description: "The remote to push to. Defaults to `origin`",
51
+ default_value: 'origin')
42
52
  ]
43
53
  end
44
54
 
@@ -1,3 +1,5 @@
1
+ require 'credentials_manager'
2
+
1
3
  module Fastlane
2
4
  module Actions
3
5
  class RegisterDevicesAction < Action
@@ -9,17 +11,12 @@ module Fastlane
9
11
 
10
12
  def self.run(params)
11
13
  require 'cupertino/provisioning_portal'
12
- require 'credentials_manager'
13
14
  require 'csv'
14
15
 
15
- params = params.first
16
-
17
- raise 'You must pass valid params to the register_devices action. Please check the readme.'.red if (params.nil? || params.empty?)
18
-
19
16
  devices = params[:devices]
20
17
  devices_file = params[:devices_file]
21
- team_id = params[:team_id] || ENV['CUPERTINO_TEAM_ID'] || ENV['FASTLANE_TEAM_ID']
22
- username = params[:username] || ENV['CUPERTINO_USERNAME']
18
+ team_id = params[:team_id]
19
+ username = params[:username]
23
20
 
24
21
  if devices
25
22
  device_objs = devices.map do |k, v|
@@ -69,10 +66,25 @@ module Fastlane
69
66
 
70
67
  def self.available_options
71
68
  [
72
- ['devices', 'A hash of devices, with the name as key and the UDID as value'],
73
- ['device_file', 'Instead, you can proide a path containing all UDIDs'],
74
- ['team_id', 'optional: Your team ID'],
75
- ['username', 'optional: Your Apple ID']
69
+ FastlaneCore::ConfigItem.new(key: :devices,
70
+ env_name: "FL_REGISTER_DEVICES_DEVICES",
71
+ description: "A hash of devices, with the name as key and the UDID as value",
72
+ is_string: false),
73
+ FastlaneCore::ConfigItem.new(key: :devices_file,
74
+ env_name: "FL_REGISTER_DEVICES_FILE",
75
+ description: "Provide a path to the devices to register",
76
+ optional: true,
77
+ verify_block: Proc.new do |value|
78
+ raise "Could not find file '#{value}'".red unless File.exists?(value)
79
+ end),
80
+ FastlaneCore::ConfigItem.new(key: :team_id,
81
+ env_name: "FASTLANE_TEAM_ID",
82
+ description: "optional: Your team ",
83
+ optional: true),
84
+ FastlaneCore::ConfigItem.new(key: :username,
85
+ env_name: "CUPERTINO_USERNAME",
86
+ description: "optional: Your Apple ID ",
87
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)),
76
88
  ]
77
89
  end
78
90
 
@@ -3,9 +3,8 @@ module Fastlane
3
3
  # Does a hard reset and clean on the repo
4
4
  class ResetGitRepoAction < Action
5
5
  def self.run(params)
6
- hash = params.first
7
- if params.include?(:force) || hash[:force] || Actions.lane_context[SharedValues::GIT_REPO_WAS_CLEAN_ON_START]
8
- paths = (hash[:files] rescue nil)
6
+ if params[:force] || params[:force] || Actions.lane_context[SharedValues::GIT_REPO_WAS_CLEAN_ON_START]
7
+ paths = (params[:files] rescue nil)
9
8
 
10
9
  if (paths || []).count == 0
11
10
  Actions.sh('git reset --hard HEAD')
@@ -37,8 +36,17 @@ module Fastlane
37
36
 
38
37
  def self.available_options
39
38
  [
40
- ['files', 'Array of files the changes should be discarded from. If not given, all files will be discarded'],
41
- ['force', 'Skip verifying of previously clean state of repo. Only recommended in combination with `files` option']
39
+ FastlaneCore::ConfigItem.new(key: :files,
40
+ env_name: "FL_RESET_GIT_FILES",
41
+ description: "Array of files the changes should be discarded from. If not given, all files will be discarded",
42
+ verify_block: Proc.new do |value|
43
+ raise "Please pass an array only" unless value.kind_of?Array
44
+ end),
45
+ FastlaneCore::ConfigItem.new(key: :force,
46
+ env_name: "FL_RESET_GIT_FORCE",
47
+ description: "Skip verifying of previously clean state of repo. Only recommended in combination with `files` option",
48
+ is_string: false,
49
+ default_value: false),
42
50
  ]
43
51
  end
44
52
 
@@ -5,20 +5,9 @@ module Fastlane
5
5
  def self.run(params)
6
6
  require 'sigh'
7
7
 
8
- params = params.first
9
-
10
- raise 'You must pass valid params to the resign action. Please check the README.md'.red if (params.nil? || params.empty?)
11
-
12
- ipa = params[:ipa] || Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
13
- signing_identity = params[:signing_identity]
14
- provisioning_profile = params[:provisioning_profile] || Actions.lane_context[SharedValues::SIGH_PROFILE_PATH]
15
-
16
- raise 'Please pass a valid ipa which should be a path to an ipa on disk'.red unless ipa
17
- raise 'Please pass a valid signing_identity'.red unless signing_identity
18
- raise 'Please pass a valid provisioning_profile which should be a path to a profile on disk.'.red unless provisioning_profile
19
8
 
20
9
  # try to resign the ipa
21
- if Sigh::Resign.resign(ipa, signing_identity, provisioning_profile)
10
+ if Sigh::Resign.resign(params[:ipa], params[:signing_identity], params[:provisioning_profile])
22
11
  Helper.log.info 'Successfully re-signed .ipa 🔏.'.green
23
12
  else
24
13
  raise 'Failed to re-sign .ipa'.red
@@ -26,14 +15,28 @@ module Fastlane
26
15
  end
27
16
 
28
17
  def self.description
29
- "Code sign an existing ipa file"
18
+ "Codesign an existing ipa file"
30
19
  end
31
20
 
32
21
  def self.available_options
33
22
  [
34
- ['ipa', 'Path to the ipa file to resign. Optional if you use the `ipa` or `xcodebuild` action'],
35
- ['signing_identity', 'Code signing identity to use. e.g. "iPhone Distribution: Luka Mirosevic (0123456789)"'],
36
- ['provisioning_profile', 'Path to your provisioning_profile. Optional if you use `sigh`']
23
+ FastlaneCore::ConfigItem.new(key: :ipa,
24
+ env_name: "FL_RESIGN_IPA",
25
+ description: "Path to the ipa file to resign. Optional if you use the `ipa` or `xcodebuild` action",
26
+ default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH],
27
+ verify_block: Proc.new do |value|
28
+ raise "No IPA file given or found, pass using `ipa_path: 'path/app.ipa'`".red unless File.exists?(value)
29
+ end),
30
+ FastlaneCore::ConfigItem.new(key: :signing_identity,
31
+ env_name: "FL_RESIGN_SIGNING_IDENTITY",
32
+ description: "Code signing identity to use. e.g. \"iPhone Distribution: Luka Mirosevic (0123456789)\""),
33
+ FastlaneCore::ConfigItem.new(key: :provisioning_profile,
34
+ env_name: "FL_RESIGN_PROVISIONING_PROFILE",
35
+ description: "Path to your provisioning_profile. Optional if you use `sigh`",
36
+ default_value: Actions.lane_context[SharedValues::SIGH_PROFILE_PATH],
37
+ verify_block: Proc.new do |value|
38
+ raise "No provisioning_profile file given or found, pass using `provisioning_profile: 'path/app.mobileprovision'`".red unless File.exists?(value)
39
+ end)
37
40
  ]
38
41
  end
39
42
 
@@ -12,18 +12,6 @@ module Fastlane
12
12
  S3_HTML_OUTPUT_PATH = :S3_HTML_OUTPUT_PATH
13
13
  end
14
14
 
15
- # -f, --file FILE .ipa file for the build
16
- # -d, --dsym FILE zipped .dsym package for the build
17
- # -a, --access-key-id ACCESS_KEY_ID AWS Access Key ID
18
- # -s, --secret-access-key SECRET_ACCESS_KEY AWS Secret Access Key
19
- # -b, --bucket BUCKET S3 bucket
20
- # --[no-]create Create bucket if it doesn't already exist
21
- # -r, --region REGION Optional AWS region (for bucket creation)
22
- # --acl ACL Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read
23
- # --source-dir SOURCE Optional source directory e.g. ./build
24
- # -P, --path PATH S3 'path'. Values from Info.plist will be substituded for keys wrapped in {}
25
- # eg. "/path/to/folder/{CFBundleVersion}/" could be evaluated as "/path/to/folder/1.0.0/"
26
-
27
15
  S3_ARGS_MAP = {
28
16
  ipa: '-f',
29
17
  dsym: '-d',
@@ -37,23 +25,19 @@ module Fastlane
37
25
  }
38
26
 
39
27
  class S3Action < Action
40
- def self.run(params)
41
-
42
- params[0] ||= {}
43
- unless params.first.is_a?Hash
44
- raise "Please pass the required information to the s3 action."
45
- end
46
-
47
- # Other things that we need
48
- params = params.first
49
-
50
- params[:access_key] ||= ENV['S3_ACCESS_KEY'] || ENV['AWS_ACCESS_KEY_ID']
51
- params[:secret_access_key] ||= ENV['S3_SECRET_ACCESS_KEY'] || ENV['AWS_SECRET_ACCESS_KEY']
52
- params[:bucket] ||= ENV['S3_BUCKET'] || ENV['AWS_BUCKET_NAME']
53
- params[:region] ||= ENV['S3_REGION'] || ENV['AWS_REGION']
54
- params[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
55
- params[:dsym] ||= Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH]
56
- params[:path] ||= 'v{CFBundleShortVersionString}_b{CFBundleVersion}/'
28
+ def self.run(config)
29
+
30
+ # Calling fetch on config so that default values will be used
31
+ params = {}
32
+ params[:ipa] = config[:ipa]
33
+ params[:dsym] = config[:dsym]
34
+ params[:access_key] = config[:access_key]
35
+ params[:secret_access_key] = config[:secret_access_key]
36
+ params[:bucket] = config[:bucket]
37
+ params[:region] = config[:region]
38
+ params[:acl] = config[:acl]
39
+ params[:source] = config[:source]
40
+ params[:path] = config[:path]
57
41
 
58
42
  # Maps nice developer build parameters to Shenzhen args
59
43
  build_args = params_to_build_args(params)
@@ -247,14 +231,49 @@ module Fastlane
247
231
 
248
232
  def self.available_options
249
233
  [
250
- ['access_key', 'AWS S3 Access Key', 'S3_ACCESS_KEY'],
251
- ['secret_access_key', 'AWS S3 Secret Key', 'S3_SECRET_ACCESS_KEY'],
252
- ['bucket', 'The bucket to store the ipa and plist in', 'S3_BUCKET'],
253
- ['region', 'The region of your S3 server', 'S3_REGION'],
254
- ['file', 'Path the ipa file to upload'],
255
- ['dsym', 'Path to your dsym file'],
256
- ['path', 'The path how it\'s used on S3']
257
- # TODO: there are more options
234
+ FastlaneCore::ConfigItem.new(key: :ipa,
235
+ env_name: "",
236
+ description: ".ipa file for the build ",
237
+ optional: true,
238
+ default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]),
239
+ FastlaneCore::ConfigItem.new(key: :dsym,
240
+ env_name: "",
241
+ description: "zipped .dsym package for the build ",
242
+ optional: true,
243
+ default_value: Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH]),
244
+ FastlaneCore::ConfigItem.new(key: :access_key,
245
+ env_name: "S3_ACCESS_KEY",
246
+ description: "AWS Access Key ID ",
247
+ optional: true,
248
+ default_value: ENV['AWS_ACCESS_KEY_ID']),
249
+ FastlaneCore::ConfigItem.new(key: :secret_access_key,
250
+ env_name: "S3_SECRET_ACCESS_KEY",
251
+ description: "AWS Secret Access Key ",
252
+ optional: true,
253
+ default_value: ENV['AWS_SECRET_ACCESS_KEY']),
254
+ FastlaneCore::ConfigItem.new(key: :bucket,
255
+ env_name: "S3_BUCKET",
256
+ description: "AWS bucket name",
257
+ optional: true,
258
+ default_value: ENV['AWS_BUCKET_NAME']),
259
+ FastlaneCore::ConfigItem.new(key: :region,
260
+ env_name: "S3_REGION",
261
+ description: "AWS region (for bucket creation) ",
262
+ optional: true,
263
+ default_value: ENV['AWS_REGION']),
264
+ FastlaneCore::ConfigItem.new(key: :path,
265
+ env_name: "S3_PATH",
266
+ description: "S3 'path'. Values from Info.plist will be substituded for keys wrapped in {} ",
267
+ optional: true,
268
+ default_value: 'v{CFBundleShortVersionString}_b{CFBundleVersion}/'),
269
+ FastlaneCore::ConfigItem.new(key: :source,
270
+ env_name: "S3_SOURCE",
271
+ description: "Optional source directory e.g. ./build ",
272
+ optional: true),
273
+ FastlaneCore::ConfigItem.new(key: :acl,
274
+ env_name: "S3_ACL",
275
+ description: "Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read ",
276
+ optional: true,),
258
277
  ]
259
278
  end
260
279
 
@@ -23,7 +23,7 @@ module Fastlane
23
23
  end
24
24
 
25
25
  begin
26
- FastlaneCore::UpdateChecker.start_looking_for_update('sigh')
26
+ FastlaneCore::UpdateChecker.start_looking_for_update('sigh') unless Helper.is_test?
27
27
 
28
28
  Sigh.config = FastlaneCore::Configuration.create(Sigh::Options.available_options, (values || {}))
29
29
 
@@ -30,17 +30,10 @@ module Fastlane
30
30
  message
31
31
  end
32
32
 
33
- def self.run(params)
34
- options = { message: '',
35
- success: true,
36
- channel: nil,
37
- payload: {}
38
- }.merge(params.first || {})
39
-
33
+ def self.run(options)
40
34
  require 'slack-notifier'
41
35
 
42
36
  options[:message] = self.trim_message(options[:message].to_s || '')
43
-
44
37
  options[:message] = Slack::Notifier::LinkFormatter.format(options[:message])
45
38
 
46
39
  url = ENV['SLACK_URL']
@@ -79,11 +72,36 @@ module Fastlane
79
72
 
80
73
  def self.available_options
81
74
  [
82
- ['message', 'The message that should be displayed on Slack. This supports the standard Slack markup language'],
83
- ['channel', '#channel or @username'],
84
- ['success', 'Success or error?'],
85
- ['payload', 'Add additional information to this post. payload must be a hash containg any key with any value'],
86
- ['default_payloads', 'Remove some of the default payloads. More information about the available payloads GitHub']
75
+ FastlaneCore::ConfigItem.new(key: :message,
76
+ env_name: "FL_SLACK_MESSAGE",
77
+ description: "The message that should be displayed on Slack. This supports the standard Slack markup language",
78
+ optional: true),
79
+ FastlaneCore::ConfigItem.new(key: :channel,
80
+ env_name: "FL_SLACK_CHANNEL",
81
+ description: "#channel or @username",
82
+ optional: true),
83
+ FastlaneCore::ConfigItem.new(key: :slack_url,
84
+ env_name: "SLACK_URL",
85
+ description: "Create an Incoming WebHook for your Slack group",
86
+ verify_block: Proc.new do |value|
87
+ raise "Invalid URL, must start with https://" unless value.start_with?"https://"
88
+ end),
89
+ FastlaneCore::ConfigItem.new(key: :payload,
90
+ env_name: "FL_SLACK_PAYLOAD",
91
+ description: "Add additional information to this post. payload must be a hash containg any key with any value",
92
+ default_value: {},
93
+ is_string: false),
94
+ FastlaneCore::ConfigItem.new(key: :default_payloads,
95
+ env_name: "FL_SLACK_DEFAULT_PAYLOADS",
96
+ description: "Remove some of the default payloads. More information about the available payloads on GitHub",
97
+ optional: true,
98
+ is_string: false),
99
+ FastlaneCore::ConfigItem.new(key: :success,
100
+ env_name: "FL_SLACK_SUCCESS",
101
+ description: "Was this build successful? (true/false)",
102
+ optional: true,
103
+ default_value: true,
104
+ is_string: false),
87
105
  ]
88
106
  end
89
107
 
@@ -6,9 +6,8 @@ module Fastlane
6
6
 
7
7
  class SnapshotAction < Action
8
8
  def self.run(params)
9
- clean = true
10
- clean = false if params.include?(:noclean)
11
- $verbose = true if params.include?(:verbose)
9
+ $verbose = true if params[:verbose]
10
+ clean = !params[:noclean]
12
11
 
13
12
  if Helper.test?
14
13
  Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] = Dir.pwd
@@ -17,7 +16,7 @@ module Fastlane
17
16
 
18
17
  require 'snapshot'
19
18
 
20
- FastlaneCore::UpdateChecker.start_looking_for_update('snapshot')
19
+ FastlaneCore::UpdateChecker.start_looking_for_update('snapshot') unless Helper.is_test?
21
20
 
22
21
  begin
23
22
  Dir.chdir(FastlaneFolder.path) do
@@ -39,8 +38,16 @@ module Fastlane
39
38
 
40
39
  def self.available_options
41
40
  [
42
- ['noclean', 'Skips the clean process when building the app'],
43
- ['verbose', 'Print out the UI Automation output']
41
+ FastlaneCore::ConfigItem.new(key: :noclean,
42
+ env_name: "FL_SNAPSHOT_NO_CLEAN",
43
+ description: "Skips the clean process when building the app",
44
+ is_string: false,
45
+ default_value: false),
46
+ FastlaneCore::ConfigItem.new(key: :verbose,
47
+ env_name: "FL_SNAPSHOT_VERBOSE",
48
+ description: "Print out the UI Automation output",
49
+ is_string: false,
50
+ default_value: false)
44
51
  ]
45
52
  end
46
53