Class: Supply::Options

Inherits:
Object
  • Object
show all
Defined in:
lib/supply/options.rb

Class Method Summary collapse

Class Method Details

.available_optionsObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/supply/options.rb', line 6

def self.available_options
  valid_tracks = %w(production beta alpha rollout)
  @options ||= [
    FastlaneCore::ConfigItem.new(key: :package_name,
                                 env_name: "SUPPLY_PACKAGE_NAME",
                                 short_option: "-p",
                                 description: "The package name of the Application to modify",
                                 default_value: CredentialsManager::AppfileConfig.try_fetch_value(:package_name)),
    FastlaneCore::ConfigItem.new(key: :track,
                                 short_option: "-a",
                                 env_name: "SUPPLY_TRACK",
                                 description: "The Track to upload the Application to: #{valid_tracks.join(', ')}",
                                 default_value: 'production',
                                 verify_block: proc do |value|
                                   available = valid_tracks
                                   UI.user_error! "Invalid value '#{value}', must be #{available.join(', ')}" unless available.include? value
                                 end),
    FastlaneCore::ConfigItem.new(key: :rollout,
                                 short_option: "-r",
                                 description: "The percentage of the user fraction when uploading to the rollout track",
                                 default_value: '0.1',
                                 verify_block: proc do |value|
                                   min = 0.05
                                   max = 0.5
                                   UI.user_error! "Invalid value '#{value}', must be between #{min} and #{max}" unless value.to_f.between?(min, max)
                                 end),
    FastlaneCore::ConfigItem.new(key: :metadata_path,
                                 env_name: "SUPPLY_METADATA_PATH",
                                 short_option: "-m",
                                 optional: true,
                                 description: "Path to the directory containing the metadata files",
                                 default_value: (Dir["./fastlane/metadata/android"] + Dir["./metadata"]).first),
    FastlaneCore::ConfigItem.new(key: :key,
                                 env_name: "SUPPLY_KEY",
                                 short_option: "-k",
                                 conflicting_options: [:json_key],
                                 deprecated: 'Use --json_key instead',
                                 description: "The p12 File used to authenticate with Google",
                                 default_value: Dir["*.p12"].first || CredentialsManager::AppfileConfig.try_fetch_value(:keyfile),
                                 verify_block: proc do |value|
                                   UI.user_error! "Could not find p12 file at path '#{File.expand_path(value)}'" unless File.exist?(File.expand_path(value))
                                 end),
    FastlaneCore::ConfigItem.new(key: :issuer,
                                 env_name: "SUPPLY_ISSUER",
                                 short_option: "-i",
                                 conflicting_options: [:json_key],
                                 deprecated: 'Use --json_key instead',
                                 description: "The issuer of the p12 file (email address of the service account)",
                                 default_value: CredentialsManager::AppfileConfig.try_fetch_value(:issuer),
                                 verify_block: proc do |value|
                                   UI.important("DEPRECATED --issuer OPTION. Use --json_key instead")
                                 end),
    FastlaneCore::ConfigItem.new(key: :json_key,
                                 env_name: "SUPPLY_JSON_KEY",
                                 short_option: "-j",
                                 conflicting_options: [:issuer, :key],
                                 optional: true, # this is shouldn't be optional but is until --key and --issuer are completely removed
                                 description: "The service account json file used to authenticate with Google",
                                 default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_file),
                                 verify_block: proc do |value|
                                   UI.user_error! "Could not find service account json file at path '#{File.expand_path(value)}'" unless File.exist?(File.expand_path(value))
                                 end),
    FastlaneCore::ConfigItem.new(key: :apk,
                                 env_name: "SUPPLY_APK",
                                 description: "Path to the APK file to upload",
                                 short_option: "-b",
                                 conflicting_options: [:apk_paths],
                                 default_value: Dir["*.apk"].last || Dir[File.join("app", "build", "outputs", "apk", "app-Release.apk")].last,
                                 optional: true,
                                 verify_block: proc do |value|
                                   UI.user_error! "Could not find apk file at path '#{value}'" unless File.exist?(value)
                                   UI.user_error! "apk file is not an apk" unless value.end_with?('.apk')
                                 end),
    FastlaneCore::ConfigItem.new(key: :apk_paths,
                                 env_name: "SUPPLY_APK_PATHS",
                                 conflicting_options: [:apk],
                                 optional: true,
                                 type: Array,
                                 description: "An array of paths to APK files to upload",
                                 short_option: "-u",
                                 verify_block: proc do |value|
                                   UI.user_error!("Could not evaluate array from '#{value}'") unless value.kind_of?(Array)
                                   value.each do |path|
                                     UI.user_error! "Could not find apk file at path '#{path}'" unless File.exist?(path)
                                     UI.user_error! "file at path '#{path}' is not an apk" unless path.end_with?('.apk')
                                   end
                                 end),
    FastlaneCore::ConfigItem.new(key: :skip_upload_apk,
                                 env_name: "SUPPLY_SKIP_UPLOAD_APK",
                                 optional: true,
                                 description: "Whether to skip uploading APK",
                                 is_string: false,
                                 default_value: false),
    FastlaneCore::ConfigItem.new(key: :skip_upload_metadata,
                                 env_name: "SUPPLY_SKIP_UPLOAD_METADATA",
                                 optional: true,
                                 description: "Whether to skip uploading metadata",
                                 is_string: false,
                                 default_value: false),
    FastlaneCore::ConfigItem.new(key: :skip_upload_images,
                                 env_name: "SUPPLY_SKIP_UPLOAD_IMAGES",
                                 optional: true,
                                 description: "Whether to skip uploading images, screenshots not included",
                                 is_string: false,
                                 default_value: false),
    FastlaneCore::ConfigItem.new(key: :skip_upload_screenshots,
                                 env_name: "SUPPLY_SKIP_UPLOAD_SCREENSHOTS",
                                 optional: true,
                                 description: "Whether to skip uploading SCREENSHOTS",
                                 is_string: false,
                                 default_value: false),
    FastlaneCore::ConfigItem.new(key: :track_promote_to,
                                 env_name: "SUPPLY_TRACK_PROMOTE_TO",
                                 optional: true,
                                 description: "The Track to promote to: #{valid_tracks.join(', ')}",
                                 verify_block: proc do |value|
                                   available = valid_tracks
                                   UI.user_error! "Invalid value '#{value}', must be #{available.join(', ')}" unless available.include? value
                                 end),
    FastlaneCore::ConfigItem.new(key: :validate_only,
                                 env_name: "SUPPLY_VALIDATE_ONLY",
                                 optional: true,
                                 description: "Indicate that changes will only be validated with Google Play rather than actually published",
                                 is_string: false,
                                 default_value: false)

  ]
end