Class: Fastlane::Actions::InstallrAction
- Inherits:
-
Fastlane::Action
- Object
- Fastlane::Action
- Fastlane::Actions::InstallrAction
- Defined in:
- fastlane/lib/fastlane/actions/installr.rb
Constant Summary collapse
- INSTALLR_API =
"https://www.installrapp.com/apps.json"
Constants inherited from Fastlane::Action
Fastlane::Action::AVAILABLE_CATEGORIES, Fastlane::Action::RETURN_TYPES
Class Method Summary collapse
- .authors ⇒ Object
- .available_options ⇒ Object
- .category ⇒ Object
- .description ⇒ Object
- .example_code ⇒ Object
- .is_supported?(platform) ⇒ Boolean
- .output ⇒ Object
- .run(params) ⇒ Object
- .upload_build(params) ⇒ Object
Methods inherited from Fastlane::Action
action_name, author, deprecated_notes, details, lane_context, method_missing, other_action, return_type, return_value, sample_return_value, shell_out_should_use_bundle_exec?, step_text
Class Method Details
permalink .authors ⇒ Object
[View source]
104 105 106 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 104 def self. ["scottrhoyt"] end |
permalink .available_options ⇒ Object
[View source]
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 66 def self. [ FastlaneCore::ConfigItem.new(key: :api_token, env_name: "INSTALLR_API_TOKEN", sensitive: true, description: "API Token for Installr Access", verify_block: proc do |value| UI.user_error!("No API token for Installr given, pass using `api_token: 'token'`") unless value && !value.empty? end), FastlaneCore::ConfigItem.new(key: :ipa, env_name: "INSTALLR_IPA_PATH", description: "Path to your IPA file. Optional if you use the _gym_ or _xcodebuild_ action", default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH], default_value_dynamic: true, verify_block: proc do |value| UI.user_error!("Couldn't find build file at path '#{value}'") unless File.exist?(value) end), FastlaneCore::ConfigItem.new(key: :notes, env_name: "INSTALLR_NOTES", description: "Release notes", optional: true), FastlaneCore::ConfigItem.new(key: :notify, env_name: "INSTALLR_NOTIFY", description: "Groups to notify (e.g. 'dev,qa')", optional: true), FastlaneCore::ConfigItem.new(key: :add, env_name: "INSTALLR_ADD", description: "Groups to add (e.g. 'exec,ops')", optional: true) ] end |
permalink .category ⇒ Object
[View source]
124 125 126 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 124 def self.category :beta end |
permalink .description ⇒ Object
[View source]
62 63 64 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 62 def self.description "Upload a new build to [Installr](http://installrapp.com/)" end |
permalink .example_code ⇒ Object
[View source]
112 113 114 115 116 117 118 119 120 121 122 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 112 def self.example_code [ 'installr( api_token: "...", ipa: "test.ipa", notes: "The next great version of the app!", notify: "dev,qa", add: "exec,ops" )' ] end |
permalink .is_supported?(platform) ⇒ Boolean
108 109 110 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 108 def self.is_supported?(platform) [:ios].include?(platform) end |
permalink .output ⇒ Object
[View source]
98 99 100 101 102 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 98 def self.output [ ['INSTALLR_BUILD_INFORMATION', 'Contains release info like :appData. See http://help.installrapp.com/api/'] ] end |
permalink .run(params) ⇒ Object
[View source]
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 10 def self.run(params) UI.success('Upload to Installr has been started. This may take some time.') response = self.upload_build(params) case response.status when 200...300 Actions.lane_context[SharedValues::INSTALLR_BUILD_INFORMATION] = response.body UI.success('Build successfully uploaded to Installr!') else UI.user_error!("Error when trying to upload build file to Installr: #{response.body}") end end |
permalink .upload_build(params) ⇒ Object
[View source]
24 25 26 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 52 53 54 55 56 57 58 59 60 |
# File 'fastlane/lib/fastlane/actions/installr.rb', line 24 def self.upload_build(params) require 'faraday' require 'faraday_middleware' url = INSTALLR_API connection = Faraday.new(url) do |builder| builder.request(:multipart) builder.request(:url_encoded) builder.response(:json, content_type: /\bjson$/) builder.use(FaradayMiddleware::FollowRedirects) builder.adapter(:net_http) end = {} [:qqfile] = Faraday::UploadIO.new(params[:ipa], 'application/octet-stream') if params[:notes] [:releaseNotes] = params[:notes] end if params[:notify] [:notify] = params[:notify] end if params[:add] [:add] = params[:add] end post_request = connection.post do |req| req.headers['X-InstallrAppToken'] = params[:api_token] req.body = end post_request.on_complete do |env| yield(env[:status], env[:body]) if block_given? end end |