Module: Fastlane::Actions
- Defined in:
- lib/fastlane/actions/s3.rb,
lib/fastlane/actions/ipa.rb,
lib/fastlane/actions/pem.rb,
lib/fastlane/actions/say.rb,
lib/fastlane/actions/cert.rb,
lib/fastlane/actions/sigh.rb,
lib/fastlane/actions/gcovr.rb,
lib/fastlane/actions/slack.rb,
lib/fastlane/actions/hockey.rb,
lib/fastlane/actions/notify.rb,
lib/fastlane/actions/resign.rb,
lib/fastlane/actions/xctool.rb,
lib/fastlane/actions/deliver.rb,
lib/fastlane/actions/frameit.rb,
lib/fastlane/actions/hipchat.rb,
lib/fastlane/actions/produce.rb,
lib/fastlane/actions/team_id.rb,
lib/fastlane/actions/snapshot.rb,
lib/fastlane/actions/testmunk.rb,
lib/fastlane/actions/typetalk.rb,
lib/fastlane/actions/team_name.rb,
lib/fastlane/actions/deploygate.rb,
lib/fastlane/actions/xcodebuild.rb,
lib/fastlane/actions/add_git_tag.rb,
lib/fastlane/actions/crashlytics.rb,
lib/fastlane/actions/xcode_select.rb,
lib/fastlane/actions/opt_out_usage.rb,
lib/fastlane/actions/actions_helper.rb,
lib/fastlane/actions/reset_git_repo.rb,
lib/fastlane/actions/update_fastlane.rb,
lib/fastlane/actions/default_platform.rb,
lib/fastlane/actions/fastlane_version.rb,
lib/fastlane/actions/install_carthage.rb,
lib/fastlane/actions/install_cocapods.rb,
lib/fastlane/actions/register_devices.rb,
lib/fastlane/actions/push_to_git_remote.rb,
lib/fastlane/actions/commit_version_bump.rb,
lib/fastlane/actions/clean_build_artifacts.rb,
lib/fastlane/actions/increment_build_number.rb,
lib/fastlane/actions/ensure_git_status_clean.rb,
lib/fastlane/actions/increment_version_number.rb,
lib/fastlane/actions/update_project_code_signing.rb
Defined Under Namespace
Modules: SharedValues Classes: AddGitTagAction, CarthageAction, CertAction, CleanBuildArtifactsAction, CocoapodsAction, CommitVersionBumpAction, CrashlyticsAction, DefaultPlatformAction, DeliverAction, DeploygateAction, EnsureGitStatusCleanAction, FastlaneVersionAction, FrameitAction, GcovrAction, HipchatAction, HockeyAction, IncrementBuildNumberAction, IncrementVersionNumberAction, IpaAction, NotifyAction, OptOutUsageAction, PemAction, ProduceAction, PushToGitRemoteAction, RegisterDevicesAction, ResetGitRepoAction, ResignAction, S3Action, SayAction, SighAction, SlackAction, SnapshotAction, TeamIdAction, TeamNameAction, TestmunkAction, TypetalkAction, UpdateFastlaneAction, UpdateProjectCodeSigningAction, XcarchiveAction, XcbuildAction, XccleanAction, XcexportAction, XcodeSelectAction, XcodebuildAction, XctestAction, XctoolAction
Constant Summary collapse
- S3_ARGS_MAP =
{ ipa: '-f', dsym: '-d', access_key: '-a', secret_access_key: '-s', bucket: '-b', region: '-r', acl: '--acl', source: '--source-dir', path: '-P', }
- ARGS_MAP =
{ workspace: '-w', project: '-p', configuration: '-c', scheme: '-s', clean: '--clean', archive: '--archive', destination: '-d', embed: '-m', identity: '-i', sdk: '--sdk', ipa: '--ipa', xcconfig: '--xcconfig', xcargs: '--xcargs', }
Class Method Summary collapse
-
.clear_lane_context ⇒ Object
Used in tests to get a clear lane before every test.
-
.execute_action(step_name) ⇒ Object
Pass a block which should be tracked.
- .executed_actions ⇒ Object
-
.git_branch ⇒ Object
Returns the current git branch - can be replaced using the environment variable ‘GIT_BRANCH`.
-
.lane_context ⇒ Object
The shared hash can be accessed by any action and contains information like the screenshots path or beta URL.
- .load_default_actions ⇒ Object
- .load_external_actions(path) ⇒ Object
-
.sh(command) ⇒ Object
Execute a shell command This method will output the string and execute it.
- .sh_no_action(command) ⇒ Object
Class Method Details
.clear_lane_context ⇒ Object
Used in tests to get a clear lane before every test
21 22 23 |
# File 'lib/fastlane/actions/actions_helper.rb', line 21 def self.clear_lane_context @lane_context = nil end |
.execute_action(step_name) ⇒ Object
Pass a block which should be tracked. One block = one testcase
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/fastlane/actions/actions_helper.rb', line 27 def self.execute_action(step_name) raise 'No block given'.red unless block_given? start = Time.now error = nil exc = nil begin yield rescue => ex exc = ex error = caller.join("\n") + "\n\n" + ex.to_s end ensure # This is also called, when the block has a return statement duration = Time.now - start executed_actions << { name: step_name, error: error, time: duration # output: captured_output } raise exc if exc end |
.executed_actions ⇒ Object
11 12 13 |
# File 'lib/fastlane/actions/actions_helper.rb', line 11 def self.executed_actions @executed_actions ||= [] end |
.git_branch ⇒ Object
Returns the current git branch - can be replaced using the environment variable ‘GIT_BRANCH`
87 88 89 90 91 92 |
# File 'lib/fastlane/actions/actions_helper.rb', line 87 def self.git_branch return ENV['GIT_BRANCH'] if ENV['GIT_BRANCH'].to_s.length > 0 # set by Jenkins s = `git rev-parse --abbrev-ref HEAD` return s.to_s.strip if s.to_s.length > 0 nil end |
.lane_context ⇒ Object
The shared hash can be accessed by any action and contains information like the screenshots path or beta URL
16 17 18 |
# File 'lib/fastlane/actions/actions_helper.rb', line 16 def self.lane_context @lane_context ||= {} end |
.load_default_actions ⇒ Object
94 95 96 97 98 |
# File 'lib/fastlane/actions/actions_helper.rb', line 94 def self.load_default_actions Dir[File. '*.rb', File.dirname(__FILE__)].each do |file| require file end end |
.load_external_actions(path) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/fastlane/actions/actions_helper.rb', line 100 def self.load_external_actions(path) raise 'You need to pass a valid path' unless File.exist?(path) Dir[File. '*.rb', path].each do |file| require file file_name = File.basename(file).gsub('.rb', '') class_name = file_name.fastlane_class + 'Action' class_ref = nil begin class_ref = Fastlane::Actions.const_get(class_name) if class_ref.respond_to?(:run) Helper.log.info "Successfully loaded custom action '#{file}'.".green else Helper.log.error "Could not find method 'run' in class #{class_name}.".red Helper.log.error 'For more information, check out the docs: https://github.com/KrauseFx/fastlane' raise "Plugin '#{file_name}' is damaged!" end rescue NameError => ex # Action not found Helper.log.error "Could not find '#{class_name}' class defined.".red Helper.log.error 'For more information, check out the docs: https://github.com/KrauseFx/fastlane' raise "Plugin '#{file_name}' is damaged!" end end end |
.sh(command) ⇒ Object
Execute a shell command This method will output the string and execute it
55 56 57 |
# File 'lib/fastlane/actions/actions_helper.rb', line 55 def self.sh(command) sh_no_action(command) end |
.sh_no_action(command) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/fastlane/actions/actions_helper.rb', line 59 def self.sh_no_action(command) command = command.join(' ') if command.is_a?(Array) # since it's an array of one element when running from the Fastfile Helper.log.info ['[SHELL COMMAND]', command.yellow].join(': ') result = '' unless Helper.test? exit_status = nil status = IO.popen(command, err: [:child, :out]) do |io| io.each do |line| Helper.log.info ['[SHELL OUTPUT]', line.strip].join(': ') result << line end io.close exit_status = $?.to_i end if exit_status != 0 # this will also append the output to the exception (for the Jenkins reports) raise "Exit status of command '#{command}' was #{exit_status} instead of 0. \n#{result}" end else result << command # only for the tests end result end |