Class: Fastlane::Actions::AnnaiCleanupAction

Inherits:
Action
  • Object
show all
Defined in:
lib/fastlane/plugin/ann_flutter_flavor/actions/ann_setup_action.rb

Overview

AnnaiCleanupAction: Cleans up all local build artifacts

Class Method Summary collapse

Class Method Details

.available_optionsObject



110
111
112
113
114
115
116
117
118
119
# File 'lib/fastlane/plugin/ann_flutter_flavor/actions/ann_setup_action.rb', line 110

def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :force,
                                 description: "Force the execution even if conditions might advise skipping",
                                 optional: true,
                                 is_string: false,
                                 default_value: false,
                                 type: Boolean)
  ]
end

.descriptionObject



121
122
123
# File 'lib/fastlane/plugin/ann_flutter_flavor/actions/ann_setup_action.rb', line 121

def self.description
  "Performs full build artifact cleanup (runs 'flutter clean' and deletes platform build folders)."
end

.example_codeObject



129
130
131
132
133
134
# File 'lib/fastlane/plugin/ann_flutter_flavor/actions/ann_setup_action.rb', line 129

def self.example_code
  [
    'annai_cleanup',
    'annai_cleanup(force: true)',
  ]
end

.is_supported?(platform) ⇒ Boolean

Returns:

  • (Boolean)


125
126
127
# File 'lib/fastlane/plugin/ann_flutter_flavor/actions/ann_setup_action.rb', line 125

def self.is_supported?(platform)
  true
end

.run(params) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/fastlane/plugin/ann_flutter_flavor/actions/ann_setup_action.rb', line 79

def self.run(params)

  # 1. Determine the necessary paths and managers
  root_folder = FastlaneFlutterFlavor::ProjectUtil.find_flutter_root
  status_manager = FastlaneFlutterFlavor::StatusManager.new(lane: self)

  # 2. Instantiate SetupLanes directly
  setup_lanes = FastlaneFlutterFlavor::SetupLanes.new(
    root_folder: root_folder,
    status_manager: status_manager,
  )

  Fastlane::UI.message("Starting full build artifact cleanup (Force: #{params[:force]})...")

  # 3. Execute the cleanup routine
  setup_lanes.cleanup(force: params[:force])

  Fastlane::UI.success("✅ Build artifact cleanup completed successfully.")

  # 4. Finalize status reporting
  status_manager.displayStatus
rescue => e
  # Log the error using the StatusManager instance
  if status_manager
    # Pass 'self' (the class) as the lane context for consistency
    status_manager.logError(self, 'annai_cleanup', nil, e)
    status_manager.displayStatus
  end
  raise "AnnaiCleanupAction failed: #{e.message}"
end