class Fastlane::Actions::RetirePreviousVersionsAction
Public Class Methods
available_options()
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/retire_previous_versions_action.rb, line 80 def self.available_options [ FastlaneCore::ConfigItem.new(key: :host_url, env_name: "AIRWATCH_HOST_API_URL", description: "Host API URL of the AirWatch/Workspace ONE instance without /API/ at the end", optional: false, type: String, verify_block: proc do |value| UI.user_error!("No AirWatch/Workspace ONE Host API URl given, pass using `host_url: 'https://yourhost.com'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :aw_tenant_code, env_name: "AIRWATCH_API_KEY", description: "API key or the tenant code to access AirWatch/Workspace ONE Rest APIs", optional: false, type: String, verify_block: proc do |value| UI.user_error!("Api tenant code header is missing, pass using `aw_tenant_code: 'yourapikey'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :b64_encoded_auth, env_name: "AIRWATCH_BASE64_ENCODED_BASIC_AUTH_STRING", description: "The base64 encoded Basic Auth string generated by authorizing username and password to the AirWatch/Workspace ONE instance", optional: false, type: String, verify_block: proc do |value| UI.user_error!("The authorization header is empty or the scheme is not basic, pass using `b64_encoded_auth: 'yourb64encodedauthstring'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :org_group_id, env_name: "AIRWATCH_ORGANIZATION_GROUP_ID", description: "Organization Group ID integer identifying the customer or container", optional: false, type: String, verify_block: proc do |value| UI.user_error!("No Organization Group ID integer given, pass using `org_group_id: 'yourorggrpintid'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :app_identifier, env_name: "APP_IDENTIFIER", description: "Bundle identifier of your app", optional: false, type: String, verify_block: proc do |value| UI.user_error!("No app identifier given, pass using `app_identifier: 'com.example.app'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :keep_latest_versions_count, env_name: "AIRWATCH_KEEP_LATEST_VERSIONS_COUNT", description: "Name of the application. default: 1", optional: true, type: String, default_value: "1", verify_block: proc do |value| UI.user_error!("The number of latest versions to keep can not be negative, pass using `keep_latest_versions_count: 'count'`") unless value.to_i > 0 end), FastlaneCore::ConfigItem.new(key: :debug, env_name: "AIRWATCH_DEBUG", description: "Debug flag, set to true to show extended output. default: false", optional: true, is_string: false, default_value: false) ] end
debug()
click to toggle source
helpers
# File lib/fastlane/plugin/airwatch_workspaceone/actions/retire_previous_versions_action.rb, line 156 def self.debug $is_debug end
description()
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/retire_previous_versions_action.rb, line 63 def self.description "The main purpose of this action is to retire previous active versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to retire all the previous active versions." end
details()
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/retire_previous_versions_action.rb, line 75 def self.details # Optional: "retire_previous_versions - To retire previous active versions of an application on the AirWatch/Workspace ONE console except the latest version." end
is_supported?(platform)
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/retire_previous_versions_action.rb, line 146 def self.is_supported?(platform) # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example) # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform [:ios, :android].include?(platform) true end
return_value()
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/retire_previous_versions_action.rb, line 71 def self.return_value # If your method provides a return value, you can describe here what it does end
run(params)
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/retire_previous_versions_action.rb, line 10 def self.run(params) UI.message("The airwatch_workspaceone plugin is working!") # check if debug is enabled $is_debug = params[:debug] if debug UI.message("----------------------------------------------") UI.message("RetirePreviousVersionsAction debug information") UI.message("----------------------------------------------") UI.message(" host_url: #{params[:host_url]}") UI.message(" aw_tenant_code: #{params[:aw_tenant_code]}") UI.message(" b64_encoded_auth: #{params[:b64_encoded_auth]}") UI.message(" organization_group_id: #{params[:org_group_id]}") UI.message(" app_identifier: #{params[:app_identifier]}") UI.message(" keep_latest_versions_count: #{params[:keep_latest_versions_count]}") end $host_url = params[:host_url] $aw_tenant_code = params[:aw_tenant_code] $b64_encoded_auth = params[:b64_encoded_auth] $org_group_id = params[:org_group_id] app_identifier = params[:app_identifier] keep_latest_versions_count = params[:keep_latest_versions_count] # step 1: find app UI.message("------------------------------") UI.message("1. Finding active app versions") UI.message("------------------------------") app_versions = app_versions = Helper::AirwatchWorkspaceoneHelper.find_app_versions(app_identifier, 'Active', $host_url, $aw_tenant_code, $b64_encoded_auth, $org_group_id, debug) UI.success("Found %d active app version(s)" % [app_versions.count]) UI.success("Version number(s): %s" % [app_versions.map {|app_version| app_version.values[1]}]) # step 2: retire previous versions UI.message("-----------------------------------------") UI.message("2. Retiring requested active app versions") UI.message("-----------------------------------------") keep_latest_versions_count_int = keep_latest_versions_count.to_i if app_versions.count < keep_latest_versions_count_int UI.important("Given number of latest versions to keep is greater than available number of versions on the store.") UI.important("Will not retire any version.") else app_versions.pop(keep_latest_versions_count_int) UI.important("Version number(s) to retire: %s" % [app_versions.map {|app_version| app_version.values[1]}]) app_versions.each do |app_version| Helper::AirwatchWorkspaceoneHelper.retire_app(app_version, $host_url, $aw_tenant_code, $b64_encoded_auth, debug) end UI.success("Version(s) %s successfully retired." % [app_versions.map {|app_version| app_version.values[1]}]) end end