Class: Fastlane::Actions::IosBuildPreflightAction

Inherits:
Action
  • Object
show all
Defined in:
lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb

Documentation collapse

Class Method Summary collapse

Class Method Details

.authorsObject



70
71
72
# File 'lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb', line 70

def self.authors
  ['Automattic']
end

.available_optionsObject



53
54
55
56
57
58
59
60
61
62
# File 'lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb', line 53

def self.available_options
  [
    FastlaneCore::ConfigItem.new(
      key: :derived_data_path,
      description: "The path to the DerivedData directory for the project. Should match what's used in the `gym` action",
      type: String,
      default_value: '~/Library/Developer/Xcode/DerivedData'
    ),
  ]
end

.descriptionObject



45
46
47
# File 'lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb', line 45

def self.description
  'Clean the environment to ensure a safe build'
end

.detailsObject



49
50
51
# File 'lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb', line 49

def self.details
  'Clean the environment to ensure a safe build'
end

.is_supported?(platform) ⇒ Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb', line 74

def self.is_supported?(platform)
  %i[ios mac].include?(platform)
end

.outputObject



64
65
# File 'lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb', line 64

def self.output
end

.return_valueObject



67
68
# File 'lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb', line 67

def self.return_value
end

.run(params) ⇒ Object



6
7
8
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
36
37
38
39
# File 'lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_build_preflight.rb', line 6

def self.run(params)
  # Validate mobile configuration secrets
  other_action.configure_apply

  Action.sh("cd .. && rm -rf #{params[:derived_data_path]}")

  # Verify that ImageMagick exists on this machine and can be called from the command-line.
  # Internal Builds use it to generate the App Icon as part of the build process
  begin
    Action.sh('which convert')
  rescue StandardError
    UI.user_error!("Couldn't find ImageMagick. Please install it by running `brew install imagemagick`")
    raise
  end

  # Verify that Ghostscript exists on this machine and can be called from the command-line.
  # Internal Builds use it to generate the App Icon as part of the build process
  begin
    Action.sh('which gs')
  rescue StandardError
    UI.user_error!("Couldn't find Ghostscript. Please install it by running `brew install ghostscript`")
    raise
  end

  # Check gems and pods are up to date. This will exit if it fails
  begin
    Action.sh('bundle check')
  rescue StandardError
    UI.user_error!("You should run 'rake dependencies' to make sure gems are up to date")
    raise
  end

  other_action.cocoapods
end