Class: Fastlane::Actions::GymAction

Inherits:
Fastlane::Action show all
Defined in:
lib/fastlane/actions/gym.rb

Class Method Summary collapse

Methods inherited from Fastlane::Action

action_name, authors, method_missing, other_action, output, sh, step_text

Class Method Details

.authorObject



49
50
51
# File 'lib/fastlane/actions/gym.rb', line 49

def self.author
  "KrauseFx"
end

.available_optionsObject



53
54
55
56
# File 'lib/fastlane/actions/gym.rb', line 53

def self.available_options
  require 'gym'
  Gym::Options.available_options
end

.descriptionObject



37
38
39
# File 'lib/fastlane/actions/gym.rb', line 37

def self.description
  "Easily build and sign your app using `gym`"
end

.detailsObject



41
42
43
# File 'lib/fastlane/actions/gym.rb', line 41

def self.details
  "More information: https://github.com/fastlane/fastlane/tree/master/gym"
end

.is_supported?(platform) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/fastlane/actions/gym.rb', line 58

def self.is_supported?(platform)
  [:ios, :mac].include? platform
end

.return_valueObject



45
46
47
# File 'lib/fastlane/actions/gym.rb', line 45

def self.return_value
  "The absolute path to the generated ipa file"
end

.run(values) ⇒ Object



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
# File 'lib/fastlane/actions/gym.rb', line 9

def self.run(values)
  require 'gym'

  begin
    FastlaneCore::UpdateChecker.start_looking_for_update('gym') unless Helper.is_test?

    if values[:provisioning_profile_path].to_s.length == 0
      sigh_path = Actions.lane_context[Actions::SharedValues::SIGH_PROFILE_PATH] || ENV["SIGH_PROFILE_PATH"]
      values[:provisioning_profile_path] = File.expand_path(sigh_path) if sigh_path
    end

    values[:export_method] ||= Actions.lane_context[Actions::SharedValues::SIGH_PROFILE_TYPE]

    absolute_ipa_path = File.expand_path(Gym::Manager.new.work(values))
    absolute_dsym_path = absolute_ipa_path.gsub(".ipa", ".app.dSYM.zip")

    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)
    Actions.lane_context[SharedValues::XCODEBUILD_ARCHIVE] = Gym::BuildCommandGenerator.archive_path
    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)

    return absolute_ipa_path
  ensure
    FastlaneCore::UpdateChecker.show_update_status('gym', Gym::VERSION)
  end
end