Class: RunLoop::Environment

Inherits:
Object
  • Object
show all
Defined in:
lib/run_loop/environment.rb

Class Method Summary collapse

Class Method Details

.bundle_idObject

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

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


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.

Returns:

  • (Boolean)


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.

Returns:

  • (Boolean)


27
28
29
# File 'lib/run_loop/environment.rb', line 27

def self.debug_read?
  ENV['DEBUG_READ'] == '1'
end

.derived_dataObject

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.expand_path(value)
  end
end

.developer_dirObject

Note:

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_endpointObject

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_targetObject

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

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


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_bundleObject

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.expand_path(value)
  end
end

.reset_between_scenarios?Boolean

Should the app data be reset between Scenarios?

Returns:

  • (Boolean)


57
58
59
# File 'lib/run_loop/environment.rb', line 57

def self.reset_between_scenarios?
  ENV["RESET_BETWEEN_SCENARIOS"] == "1"
end

.solutionObject

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.expand_path(value)
  end
end

.teamcity?Boolean

Returns true if running in Teamcity

Checks the value of TEAMCITY_PROJECT_NAME

Returns:

  • (Boolean)


188
189
190
191
# File 'lib/run_loop/environment.rb', line 188

def self.teamcity?
  value = ENV["TEAMCITY_PROJECT_NAME"]
  !!value && value != ''
end

.trace_templateObject

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.expand_path(value)
  end
end

.travis?Boolean

Returns true if running in Travis CI

Checks the value of TRAVIS

Returns:

  • (Boolean)


172
173
174
175
# File 'lib/run_loop/environment.rb', line 172

def self.travis?
  value = ENV["TRAVIS"]
  !!value && value != ''
end

.uia_timeoutObject

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_directoryObject

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

Returns:

  • (Boolean)


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

.xcodeprojObject

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.expand_path(value)
  end
end

.xtc?Boolean

Returns true if we are running on the XTC

Returns:

  • (Boolean)


32
33
34
# File 'lib/run_loop/environment.rb', line 32

def self.xtc?
  ENV['XAMARIN_TEST_CLOUD'] == '1'
end