class Fastlane::Actions::SetupSemaphoreAction
Public Class Methods
action_name()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 69 def self.action_name "setup_semaphore" end
available_options()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 86 def self.available_options [ FastlaneCore::ConfigItem.new(key: :force, env_name: "SEMAPHORE_CI_FORCE", description: "Force setup, even if not executed by Semaphore CI", optional: true, default_value: false, type: Boolean) ] end
default_keychain_name()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 73 def self.default_keychain_name "semaphore_temporary_keychain" end
description()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 61 def self.description "Semaphore CI integration" end
details()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 81 def self.details # Optional: "This plugin provides actions for setiing up Semaphore CI environment" end
is_supported?(platform)
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 97 def self.is_supported?(platform) # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example) # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform # # [:ios, :mac, :android].include?(platform) [:ios, :android].include?(platform) end
return_value()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 77 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/semaphore/actions/setup_semaphore_action.rb, line 7 def self.run(params) unless Helper.ci? || params[:force] UI.message("Not running on CI, skipping `#{action_name}`.") return end set_temp_keychain set_readonly_mode set_output_paths end
set_output_paths()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 43 def self.set_output_paths unless ENV["FL_OUTPUT_DIR"] UI.message("Skipping Log Path setup as FL_OUTPUT_DIR is unset") return end root = Pathname.new(ENV["FL_OUTPUT_DIR"]) ENV["SCAN_OUTPUT_DIRECTORY"] = (root + "scan").to_s ENV["GYM_OUTPUT_DIRECTORY"] = (root + "gym").to_s ENV["FL_BUILDLOG_PATH"] = (root + "buildlogs").to_s ENV["SCAN_INCLUDE_SIMULATOR_LOGS"] = true.to_s UI.message("Log paths set up to #{ENV["FL_OUTPUT_DIR"]}") UI.message("\tscan logs: #{ENV["SCAN_OUTPUT_DIRECTORY"]}") UI.message("\tgym logs: #{ENV["GYM_OUTPUT_DIRECTORY"]}") UI.message("\tbuild logs: #{ENV["FL_BUILDLOG_PATH"]}") end
set_readonly_mode()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 38 def self.set_readonly_mode UI.message("Enabling match readonly mode.") ENV["MATCH_READONLY"] = true.to_s end
set_temp_keychain()
click to toggle source
# File lib/fastlane/plugin/semaphore/actions/setup_semaphore_action.rb, line 17 def self.set_temp_keychain unless ENV["MATCH_KEYCHAIN_NAME"].nil? UI.message("Skipping Keychain setup as a keychain was already specified") return end keychain_name = default_keychain_name ENV["MATCH_KEYCHAIN_NAME"] = keychain_name ENV["MATCH_KEYCHAIN_PASSWORD"] = "" UI.message("Creating temporary keychain: \"#{keychain_name}\".") Actions::CreateKeychainAction.run( name: keychain_name, default_keychain: true, unlock: true, timeout: false, lock_when_sleeps: true, add_to_search_list: true, password: "" ) end