Class: Fastlane::Actions::GooglePlayTrackVersionCodeAction

Inherits:
Action
  • Object
show all
Defined in:
lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb

Constant Summary collapse

OPTIONS =

Supply::Options.available_options keys that apply to this action.

[
  :package_name,
  :track,
  :key,
  :issuer,
  :json_key,
  :json_key_data,
  :root_url,
  :timeout
]

Class Method Summary collapse

Class Method Details

.authorsObject



54
55
56
# File 'lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb', line 54

def self.authors
  ["Nuno Pinge"]
end

.available_optionsObject



58
59
60
61
62
63
64
65
# File 'lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb', line 58

def self.available_options
  require "supply"
  require "supply/options"

  Supply::Options.available_options.select do |option|
    OPTIONS.include?(option.key)
  end
end

.descriptionObject



42
43
44
# File 'lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb', line 42

def self.description
  "Fetch the most recent version code from a Play Store track from within Fastlane."
end

.detailsObject



46
47
48
# File 'lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb', line 46

def self.details
  "Use this action to fetch the highest build version code from a Play Store track, including version codes from builds that are archived."
end

.example_codeObject



67
68
69
70
71
72
73
74
# File 'lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb', line 67

def self.example_code
  [
    'google_play_track_version_code(
      package_name: \'com.example\',
      track: \'production\'
    )'
  ]
end

.is_supported?(platform) ⇒ Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb', line 76

def self.is_supported?(platform)
  platform == :android
end

.return_valueObject



50
51
52
# File 'lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb', line 50

def self.return_value
  "Integer with the latest build version code (integer or nil)"
end

.run(params) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/fastlane/plugin/google_play_versions/actions/google_play_track_version_code_action.rb', line 18

def self.run(params)
  config = params || FastlaneCore::Configuration.create(available_options, {})
  track_version_codes = other_action.google_play_track_version_codes(
    package_name: params[:package_name],
    track: params[:track]
  )
  aab_version_codes = Helper::GooglePlayVersionsHelper.aab_version_codes(config)
  if aab_version_codes.empty? && track_version_codes.empty?
    UI.important("Could not find any app bundles with version codes on the '#{params[:track]}' track")
    return 0
  end
  max_track_version_code = track_version_codes.max
  if max_track_version_code.to_s.size >= 4
    related_aab_version_codes = aab_version_codes.select do |version_code|
      version_code.to_s[0..4].to_i == max_track_version_code.to_s[0..4].to_i
    end
    version_code = (track_version_codes + related_aab_version_codes).max
  else
    version_code = (track_version_codes + aab_version_codes).max
  end
  UI.success("Found '#{version_code}' as the latest version code on the '#{params[:track]}' track")
  version_code
end