Class: RunLoop::Environment
- Inherits:
-
Object
- Object
- RunLoop::Environment
- Defined in:
- lib/run_loop/environment.rb
Class Method Summary collapse
-
.bundle_id ⇒ Object
Returns the value of BUNDLE_ID.
-
.ci? ⇒ Boolean
Returns true if running in a CI environment.
-
.circle_ci? ⇒ Boolean
Returns true if running in Circle CI.
-
.debug? ⇒ Boolean
Returns true if debugging is enabled.
-
.debug_read? ⇒ Boolean
Returns true if read debugging is enabled.
-
.derived_data ⇒ Object
Returns the value of DERIVED_DATA which can be used to specify an alternative DerivedData directory.
-
.developer_dir ⇒ Object
Returns the value of DEVELOPER_DIR.
-
.device_endpoint ⇒ Object
Returns the value of DEVICE_ENDPOINT.
-
.device_target ⇒ Object
Returns the value of DEVICE_TARGET.
-
.gitlab? ⇒ Boolean
Returns true if running in Teamcity.
-
.jenkins? ⇒ Boolean
Returns true if running in Jenkins CI.
-
.path_to_app_bundle ⇒ Object
Returns to the path to the app bundle (simulator builds).
-
.reset_between_scenarios? ⇒ Boolean
Should the app data be reset between Scenarios?.
-
.solution ⇒ Object
Returns the value of SOLUTION which can be used to specify a Xamarin Studio .sln.
-
.teamcity? ⇒ Boolean
Returns true if running in Teamcity.
-
.trace_template ⇒ Object
Returns the value of TRACE_TEMPLATE; the Instruments template to use during testing.
-
.travis? ⇒ Boolean
Returns true if running in Travis CI.
-
.uia_timeout ⇒ Object
Returns the value of UIA_TIMEOUT.
-
.user_home_directory ⇒ Object
Returns the user home directory.
-
.windows_env? ⇒ Boolean
Returns true if Windows environment.
-
.with_debugging(debug, &block) ⇒ Object
!@visibility private.
-
.xcodeproj ⇒ Object
Returns the value of XCODEPROJ which can be used to specify an Xcode project directory (my.xcodeproj).
-
.xtc? ⇒ Boolean
Returns true if we are running on the XTC.
Class Method Details
.bundle_id ⇒ Object
Returns the value of BUNDLE_ID
125 126 127 128 129 130 131 132 |
# File 'lib/run_loop/environment.rb', line 125 def self.bundle_id value = ENV['BUNDLE_ID'] if !value || value == '' nil else value end end |
.ci? ⇒ Boolean
Returns true if running in a CI environment
202 203 204 205 206 207 208 209 210 211 |
# File 'lib/run_loop/environment.rb', line 202 def self.ci? [ self.ci_var_defined?, self.travis?, self.jenkins?, self.circle_ci?, self.teamcity?, self.gitlab? ].any? end |
.circle_ci? ⇒ Boolean
Returns true if running in Circle CI
Checks the value of CIRCLECI
180 181 182 183 |
# File 'lib/run_loop/environment.rb', line 180 def self.circle_ci? value = ENV["CIRCLECI"] !!value && value != '' end |
.debug? ⇒ Boolean
Returns true if debugging is enabled.
22 23 24 |
# File 'lib/run_loop/environment.rb', line 22 def self.debug? ENV['DEBUG'] == '1' end |
.debug_read? ⇒ Boolean
Returns true if read debugging is enabled.
27 28 29 |
# File 'lib/run_loop/environment.rb', line 27 def self.debug_read? ENV['DEBUG_READ'] == '1' end |
.derived_data ⇒ Object
Returns the value of DERIVED_DATA which can be used to specify an alternative DerivedData directory.
The default is ~/Library/Xcode/DerivedData, but Xcode allows you to change this value.
81 82 83 84 85 86 87 88 |
# File 'lib/run_loop/environment.rb', line 81 def self.derived_data value = ENV["DERIVED_DATA"] if value.nil? || value == "" nil else File.(value) end end |
.developer_dir ⇒ Object
Never call this directly. Always create an Xcode instance and allow it to derive the path to the Xcode toolchain.
Returns the value of DEVELOPER_DIR
152 153 154 155 156 157 158 159 |
# File 'lib/run_loop/environment.rb', line 152 def self.developer_dir value = ENV['DEVELOPER_DIR'] if !value || value == '' nil else value end end |
.device_endpoint ⇒ Object
Returns the value of DEVICE_ENDPOINT
47 48 49 50 51 52 53 54 |
# File 'lib/run_loop/environment.rb', line 47 def self.device_endpoint value = ENV["DEVICE_ENDPOINT"] if value.nil? || value == "" nil else value end end |
.device_target ⇒ Object
Returns the value of DEVICE_TARGET
37 38 39 40 41 42 43 44 |
# File 'lib/run_loop/environment.rb', line 37 def self.device_target value = ENV["DEVICE_TARGET"] if value.nil? || value == "" nil else value end end |
.gitlab? ⇒ Boolean
Returns true if running in Teamcity
Checks the value of GITLAB_CI
196 197 198 199 |
# File 'lib/run_loop/environment.rb', line 196 def self.gitlab? value = ENV["GITLAB_CI"] !!value && value != '' end |
.jenkins? ⇒ Boolean
Returns true if running in Jenkins CI
Checks the value of JENKINS_HOME
164 165 166 167 |
# File 'lib/run_loop/environment.rb', line 164 def self.jenkins? value = ENV["JENKINS_HOME"] !!value && value != '' end |
.path_to_app_bundle ⇒ Object
Returns to the path to the app bundle (simulator builds).
Both APP_BUNDLE_PATH and APP are checked and in that order.
Use of APP_BUNDLE_PATH is deprecated and will be removed.
139 140 141 142 143 144 145 146 |
# File 'lib/run_loop/environment.rb', line 139 def self.path_to_app_bundle value = ENV['APP_BUNDLE_PATH'] || ENV['APP'] if !value || value == '' nil else File.(value) end end |
.reset_between_scenarios? ⇒ Boolean
Should the app data be reset between Scenarios?
57 58 59 |
# File 'lib/run_loop/environment.rb', line 57 def self.reset_between_scenarios? ENV["RESET_BETWEEN_SCENARIOS"] == "1" end |
.solution ⇒ Object
Returns the value of SOLUTION which can be used to specify a Xamarin Studio .sln
This is useful if your project has multiple solutions (.sln) and Calabash cannot detect the correct one.
95 96 97 98 99 100 101 102 |
# File 'lib/run_loop/environment.rb', line 95 def self.solution value = ENV["SOLUTION"] if value.nil? || value == "" nil else File.(value) end end |
.teamcity? ⇒ Boolean
Returns true if running in Teamcity
Checks the value of TEAMCITY_PROJECT_NAME
188 189 190 191 |
# File 'lib/run_loop/environment.rb', line 188 def self.teamcity? value = ENV["TEAMCITY_PROJECT_NAME"] !!value && value != '' end |
.trace_template ⇒ Object
Returns the value of TRACE_TEMPLATE; the Instruments template to use during testing.
106 107 108 109 110 111 112 113 |
# File 'lib/run_loop/environment.rb', line 106 def self.trace_template value = ENV['TRACE_TEMPLATE'] if value.nil? || value == "" nil else File.(value) end end |
.travis? ⇒ Boolean
Returns true if running in Travis CI
Checks the value of TRAVIS
172 173 174 175 |
# File 'lib/run_loop/environment.rb', line 172 def self.travis? value = ENV["TRAVIS"] !!value && value != '' end |
.uia_timeout ⇒ Object
Returns the value of UIA_TIMEOUT. Use this control how long to wait for instruments to launch and attach to your application.
Non-empty values are converted to a float.
119 120 121 122 |
# File 'lib/run_loop/environment.rb', line 119 def self.uia_timeout timeout = ENV['UIA_TIMEOUT'] timeout ? timeout.to_f : nil end |
.user_home_directory ⇒ Object
Returns the user home directory
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/run_loop/environment.rb', line 5 def self.user_home_directory if self.xtc? home = File.join("./", "tmp", "home") FileUtils.mkdir_p(home) home else require 'etc' Etc.getpwuid.dir end end |
.windows_env? ⇒ Boolean
Returns true if Windows environment
17 18 19 |
# File 'lib/run_loop/environment.rb', line 17 def self.windows_env? RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ end |
.with_debugging(debug, &block) ⇒ Object
!@visibility private
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 |
# File 'lib/run_loop/environment.rb', line 214 def self.with_debugging(debug, &block) if debug original_value = ENV['DEBUG'] begin ENV['DEBUG'] = '1' block.call ensure ENV['DEBUG'] = original_value end else block.call end end |
.xcodeproj ⇒ Object
Returns the value of XCODEPROJ which can be used to specify an Xcode project directory (my.xcodeproj).
This is useful if your project has multiple xcodeproj directories.
Most users should not set this variable.
67 68 69 70 71 72 73 74 |
# File 'lib/run_loop/environment.rb', line 67 def self.xcodeproj value = ENV["XCODEPROJ"] if value.nil? || value == "" nil else File.(value) end end |
.xtc? ⇒ Boolean
Returns true if we are running on the XTC
32 33 34 |
# File 'lib/run_loop/environment.rb', line 32 def self.xtc? ENV['XAMARIN_TEST_CLOUD'] == '1' end |