class Fastlane::Actions::GsStartExternalTestingAction

Public Class Methods

authors() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_start_external_testing.rb, line 34
def self.authors
  ["Сергей Веселовский"]
end
available_options() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_start_external_testing.rb, line 47
def self.available_options
  require "pilot"
  require "pilot/options"
  FastlaneCore::CommanderGenerator.new.generate(Pilot::Options.available_options)
end
description() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_start_external_testing.rb, line 30
def self.description
  "Gradoservice plugin to rule apps releases"
end
details() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_start_external_testing.rb, line 42
def self.details
  # Optional:
  "Gradoservice plugin to rule apps releases for our scheme"
end
is_supported?(platform) click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_start_external_testing.rb, line 53
def self.is_supported?(platform)
  # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
  # See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
  #
  # [:ios, :mac, :android].include?(platform)
  true
end
return_value() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_start_external_testing.rb, line 38
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/gs_deliver/actions/gs_start_external_testing.rb, line 6
def self.run(params)
  build_manager = Pilot::BuildManager.new
  build_manager.start(params)
  platform = build_manager.fetch_app_platform(required: false)
  builds = build_manager.app.all_processing_builds(platform: platform) + build_manager.app.builds(platform: platform)
  # sort by upload_date
  builds.sort! { |a, b| a.upload_date <=> b.upload_date }
  build = builds.last
  if build.nil?
    UI.user_error!("No builds found.")
    return
  end
  if build.processing
    UI.user_error!("Build #{build.train_version}(#{build.build_version}) is still processing.")
    return
  end
  if build.testing_status == "External"
    UI.user_error!("Build #{build.train_version}(#{build.build_version}) has already been distributed.")
    return
  end

  build.build_train.update_testing_status!(true, 'external', build)
end