class Fastlane::Actions::SouyuzAction

Public Class Methods

author() click to toggle source
# File lib/fastlane/plugin/souyuz/actions/souyuz_action.rb, line 53
def self.author
  "Felix Rudat"
end
available_options() click to toggle source
# File lib/fastlane/plugin/souyuz/actions/souyuz_action.rb, line 57
def self.available_options
  require 'souyuz'
  ::Souyuz::Options.available_options
end
description() click to toggle source
# File lib/fastlane/plugin/souyuz/actions/souyuz_action.rb, line 45
def self.description
  "Easily build and sign your app using `souyuz`"
end
is_supported?(platform) click to toggle source
# File lib/fastlane/plugin/souyuz/actions/souyuz_action.rb, line 62
def self.is_supported?(platform)
  true
end
return_value() click to toggle source
# File lib/fastlane/plugin/souyuz/actions/souyuz_action.rb, line 49
def self.return_value
  "The absolute path to the generated app file"
end
run(values) click to toggle source
# File lib/fastlane/plugin/souyuz/actions/souyuz_action.rb, line 10
def self.run(values)
  require 'souyuz'
  values[:platform] = ::Souyuz::Platform.from_lane_context(Actions.lane_context)
  ::Souyuz.config = values

  if ::Souyuz.project.ios? or ::Souyuz.project.osx?
    absolute_ipa_path = File.expand_path(::Souyuz::Manager.new.work(values))
    absolute_app_path = File.join(values[:output_path], "#{values[:assembly_name]}.app")
    absolute_dsym_path = absolute_ipa_path.gsub(".ipa", ".app.dSYM.zip")

    Actions.lane_context[SharedValues::APP_OUTPUT_PATH] = absolute_app_path
    Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] = absolute_ipa_path
    Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH] = absolute_dsym_path if File.exist?(absolute_dsym_path)
    ENV[SharedValues::APP_OUTPUT_PATH.to_s] = absolute_app_path
    ENV[SharedValues::APP_BUNDLE_PATH.to_s] = absolute_app_path # for calabash
    ENV[SharedValues::IPA_OUTPUT_PATH.to_s] = absolute_ipa_path # for deliver
    ENV[SharedValues::DSYM_OUTPUT_PATH.to_s] = absolute_dsym_path if File.exist?(absolute_dsym_path)

    absolute_ipa_path
  elsif ::Souyuz.project.android?
    # check if keystore vars are set but password is missing
    if values[:keystore_path] && values[:keystore_alias]
      unless values[:keystore_password]
        ::Souyuz.config[:keystore_password] = ask("Password (for #{values[:keystore_alias]}): ") { |q| q.echo = "*" }
      end
    end
    absolute_apk_path = File.expand_path(::Souyuz::Manager.new.work(values))

    Actions.lane_context[SharedValues::GRADLE_BUILD_TYPE] = values[:build_configuration]
    Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] = absolute_apk_path

    absolute_apk_path
  end
end