class RunLoop::Environment
Constants
- WIN_PATTERNS
@visibility private
Public Class Methods
# File lib/run_loop/environment.rb, line 300 def self.azurepipelines? value = ENV["AGENT_VERSION"] !!value && value != '' end
Returns the value of BUNDLE_ID
# File lib/run_loop/environment.rb, line 138 def self.bundle_id value = ENV['BUNDLE_ID'] if !value || value == '' nil else value end end
Returns the value of CBXDEVICE
Use this to specify a non-default CBX-Runner for physical devices.
The default CBX-Runner is bundled with this gem.
# File lib/run_loop/environment.rb, line 227 def self.cbxdevice value = ENV["CBXDEVICE"] if !value || value == "" nil else value end end
Returns the value of CBXSIM
Use this to specify a non-default CBX-Runner for simulators.
The default CBX-Runner is bundled with this gem.
# File lib/run_loop/environment.rb, line 241 def self.cbxsim value = ENV["CBXSIM"] if !value || value == "" nil else value end end
Returns true if running in a CI environment
# File lib/run_loop/environment.rb, line 306 def self.ci? [ self.ci_var_defined?, self.travis?, self.jenkins?, self.circle_ci?, self.teamcity?, self.gitlab?, self.azurepipelines? ].any? end
Returns true if running in Circle CI
Checks the value of CIRCLECI
# File lib/run_loop/environment.rb, line 279 def self.circle_ci? value = ENV["CIRCLECI"] !!value && value != '' end
Returns the value of CODE_SIGN_IDENTITY
# File lib/run_loop/environment.rb, line 175 def self.code_sign_identity value = ENV["CODE_SIGN_IDENTITY"] if !value || value == "" nil else value end end
Returns true if debugging is enabled.
# File lib/run_loop/environment.rb, line 26 def self.debug? ENV['DEBUG'] == '1' end
Returns true if read debugging is enabled.
# File lib/run_loop/environment.rb, line 31 def self.debug_read? ENV['DEBUG_READ'] == '1' end
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.
# File lib/run_loop/environment.rb, line 94 def self.derived_data value = ENV["DERIVED_DATA"] if value.nil? || value == "" nil else File.expand_path(value) end end
Returns the value of DEVELOPER_DIR
@note Never call this directly. Always create an Xcode
instance
and allow it to derive the path to the Xcode toolchain.
# File lib/run_loop/environment.rb, line 165 def self.developer_dir value = ENV['DEVELOPER_DIR'] if !value || value == '' nil else value end end
Returns the value of DEVICE_ENDPOINT
# File lib/run_loop/environment.rb, line 251 def self.device_agent_url value = ENV["DEVICE_AGENT_URL"] if value.nil? || value == "" nil else value end end
Returns the value of DEVICE_ENDPOINT
# File lib/run_loop/environment.rb, line 51 def self.device_endpoint value = ENV["DEVICE_ENDPOINT"] if value.nil? || value == "" nil else value end end
Returns the value of DEVICE_TARGET
# File lib/run_loop/environment.rb, line 41 def self.device_target value = ENV["DEVICE_TARGET"] if value.nil? || value == "" nil else value end end
Returns true if running in Teamcity
Checks the value of GITLAB_CI
# File lib/run_loop/environment.rb, line 295 def self.gitlab? value = ENV["GITLAB_CI"] !!value && value != '' end
Returns the value of IOS_DEVICE_MANAGER
Use this to specify a non-default ios_device_manager
binary.
The default ios_device_manager
binary is bundled with this gem.
# File lib/run_loop/environment.rb, line 213 def self.ios_device_manager value = ENV["IOS_DEVICE_MANAGER"] if !value || value == "" nil else value end end
Returns true if running in Jenkins CI
Checks the value of JENKINS_HOME
# File lib/run_loop/environment.rb, line 263 def self.jenkins? value = ENV["JENKINS_HOME"] !!value && value != '' end
Returns the value of KEYCHAIN
Use this to specify a non-default KEYCHAIN for code signing.
The default KEYCHAIN is login.keychain.
# File lib/run_loop/environment.rb, line 199 def self.keychain value = ENV["KEYCHAIN"] if !value || value == "" nil else value end end
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.
# File lib/run_loop/environment.rb, line 152 def self.path_to_app_bundle value = ENV['APP_BUNDLE_PATH'] || ENV['APP'] if !value || value == '' nil else File.expand_path(value) end end
# File lib/run_loop/environment.rb, line 60 def self.port value = ENV["CBX_SERVER_PORT"] if value.nil? || value == "" 27753 else value end end
Returns the value of PROVISIONING_PROFILE
# File lib/run_loop/environment.rb, line 185 def self.provisioning_profile value = ENV["PROVISIONING_PROFILE"] if !value || value == "" nil else value end end
Should the app data be reset between Scenarios?
# File lib/run_loop/environment.rb, line 70 def self.reset_between_scenarios? ENV["RESET_BETWEEN_SCENARIOS"] == "1" end
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.
# File lib/run_loop/environment.rb, line 108 def self.solution value = ENV["SOLUTION"] if value.nil? || value == "" nil else File.expand_path(value) end end
Returns true if running in Teamcity
Checks the value of TEAMCITY_PROJECT_NAME
# File lib/run_loop/environment.rb, line 287 def self.teamcity? value = ENV["TEAMCITY_PROJECT_NAME"] !!value && value != '' end
Returns the value of TRACE_TEMPLATE; the Instruments
template to use during testing.
# File lib/run_loop/environment.rb, line 119 def self.trace_template value = ENV['TRACE_TEMPLATE'] if value.nil? || value == "" nil else File.expand_path(value) end end
Returns true if running in Travis CI
Checks the value of TRAVIS
# File lib/run_loop/environment.rb, line 271 def self.travis? value = ENV["TRAVIS"] !!value && value != '' end
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.
# File lib/run_loop/environment.rb, line 132 def self.uia_timeout timeout = ENV['UIA_TIMEOUT'] timeout ? timeout.to_f : nil end
Returns the user home directory
# 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
Returns true if Windows environment
# File lib/run_loop/environment.rb, line 17 def self.windows_env? if @@windows_env.nil? @@windows_env = Environment.host_os_is_win? end @@windows_env end
!@visibility private
# File lib/run_loop/environment.rb, line 319 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
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.
# File lib/run_loop/environment.rb, line 80 def self.xcodeproj value = ENV["XCODEPROJ"] if value.nil? || value == "" nil else File.expand_path(value) end end
Returns true if we are running on the XTC
# File lib/run_loop/environment.rb, line 36 def self.xtc? ENV['XAMARIN_TEST_CLOUD'] == '1' end
Private Class Methods
!@visibility private Returns the value of CBXWS. This can be used in conjunction with :cbx_launcher => :xcodebuild to launch the DeviceAgent
rather than iOSDeviceManager.
You should only set this if you are actively developing the DeviceAgent
.
# File lib/run_loop/environment.rb, line 349 def self.cbxws value = ENV["CBXWS"] if value.nil? || value == "" nil else path = File.expand_path(value) if !File.directory?(path) raise RuntimeError, %Q[ CBXWS is set, but there is no workspace at #{path} Only set CBXWS if you are developing new features in the DeviceAgent. ] end path end end
!@visibility private
# File lib/run_loop/environment.rb, line 338 def self.ci_var_defined? value = ENV["CI"] !!value && value != '' end
@!visibility private
# File lib/run_loop/environment.rb, line 385 def self.host_os_is_win? ruby_platform = RbConfig::CONFIG["host_os"] !!WIN_PATTERNS.find { |r| ruby_platform =~ r } end