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/hall.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/oclint.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/mailgun.rb,
lib/fastlane/actions/produce.rb,
lib/fastlane/actions/team_id.rb,
lib/fastlane/actions/dsym_zip.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/set_build_number_repository.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, DsymZipAction, EnsureGitStatusCleanAction, FastlaneVersionAction, FrameitAction, GcovrAction, HallAction, HipchatAction, HockeyAction, IncrementBuildNumberAction, IncrementVersionNumberAction, IpaAction, MailgunAction, NotifyAction, OclintAction, OptOutUsageAction, PemAction, ProduceAction, PushToGitRemoteAction, RegisterDevicesAction, ResetGitRepoAction, ResignAction, S3Action, SayAction, SetBuildNumberRepositoryAction, 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
-
.get_all_official_actions ⇒ Object
returns a list of official integrations.
- .git_author ⇒ 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.
- .last_git_commit ⇒ Object
- .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
37 38 39 |
# File 'lib/fastlane/actions/actions_helper.rb', line 37 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
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/fastlane/actions/actions_helper.rb', line 43 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 |
.get_all_official_actions ⇒ Object
returns a list of official integrations
111 112 113 114 115 |
# File 'lib/fastlane/actions/actions_helper.rb', line 111 def self.get_all_official_actions Dir[File. '*.rb', File.dirname(__FILE__)].collect do |file| File.basename(file).gsub('.rb', '').to_sym end end |
.git_author ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/fastlane/actions/actions_helper.rb', line 15 def self. s = `git log --name-status HEAD^..HEAD` s = s.match(/Author:.*<(.*)>/)[1] return s if s.to_s.length > 0 return nil rescue return nil end |
.git_branch ⇒ Object
Returns the current git branch - can be replaced using the environment variable ‘GIT_BRANCH`
103 104 105 106 107 108 |
# File 'lib/fastlane/actions/actions_helper.rb', line 103 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
32 33 34 |
# File 'lib/fastlane/actions/actions_helper.rb', line 32 def self.lane_context @lane_context ||= {} end |
.last_git_commit ⇒ Object
24 25 26 27 28 |
# File 'lib/fastlane/actions/actions_helper.rb', line 24 def self.last_git_commit s = `git log -1 --pretty=%B`.strip return s if s.to_s.length > 0 nil end |
.load_default_actions ⇒ Object
117 118 119 120 121 |
# File 'lib/fastlane/actions/actions_helper.rb', line 117 def self.load_default_actions Dir[File. '*.rb', File.dirname(__FILE__)].each do |file| require file end end |
.load_external_actions(path) ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/fastlane/actions/actions_helper.rb', line 123 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
71 72 73 |
# File 'lib/fastlane/actions/actions_helper.rb', line 71 def self.sh(command) sh_no_action(command) end |
.sh_no_action(command) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/fastlane/actions/actions_helper.rb', line 75 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]', 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 |