hive-runner-ios 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 569799065f00e3d0934176298eddbb60f8db83c8
4
- data.tar.gz: fd62240fb06d1d33e244e0eca4fb87be6029b96b
3
+ metadata.gz: d9217a775fece75da70489ef669479a8966b3d98
4
+ data.tar.gz: dd897a7898c1ca344e458ac5e03956ff7d758461
5
5
  SHA512:
6
- metadata.gz: f35f0e8034cc6934ab2016256655a253636b0b89cf32a6466885b2826ced22cc3396161b3684e8b0acb42669b7c7d7c852b58005145aeeb98668e89f4436641e
7
- data.tar.gz: 76ab662fccaae511c0cd7c5b71d69b5a39001b7e1d66b911662af046f119e550d4ddecd5f0b74104753417f7768b0357c9cde301283f8d690b93a07be04bd02d
6
+ metadata.gz: 37018163ec68ba7c02b108f64e1fbbee5fcd4dbb3eb85b4c0a1b0f274b5e3adcf6762548343b96e46d127d8bb08b31d240395a787bcc17c656c708712262d3ed
7
+ data.tar.gz: 8f0f4d36c91f07e42040cd84dc602f4af6edabf5ed08283369d25d8ef7d81a41439cdbd44e86fe129f15fd899e6d46894ccc684d28ef0a5d7df8beeeae99e632
@@ -1,12 +1,19 @@
1
1
  require 'hive/controller'
2
2
  require 'hive/worker/ios'
3
3
  require 'device_api/ios'
4
+ require 'mind_meld'
4
5
 
5
6
  module Hive
6
7
  class Controller
7
8
  class Ios < Controller
8
9
 
10
+ def initialize(options)
11
+ @hivemind = MindMeld.new(url: 'http://localhost:3000')
12
+ super(options)
13
+ end
14
+
9
15
  def detect
16
+
10
17
  Hive.logger.debug("#{Time.now} Polling hive: #{Hive.id}")
11
18
  Hive.devicedb('Hive').poll(Hive.id)
12
19
  Hive.logger.debug("#{Time.now} Finished polling hive: #{Hive.id}")
@@ -22,6 +29,19 @@ module Hive
22
29
  return []
23
30
  end
24
31
 
32
+ devices.each do |device|
33
+ @hivemind.register(
34
+ hostname: device.model,
35
+ serial: device.serial,
36
+ macs: [device.wifi_mac_address],
37
+ #ips: [device.ip_address],
38
+ brand: 'Apple',
39
+ model: device.model,
40
+ device_type: 'mobile',
41
+ imei: device.imei
42
+ )
43
+ end
44
+
25
45
  unless hive_details['devices'].empty?
26
46
  hive_details['devices'].select {|a| a['os'] == 'ios'}.each do |device|
27
47
  registered_device = devices.select { |a| a.serial == device['serial'] }
@@ -33,6 +33,9 @@ module Hive
33
33
 
34
34
  helper = FruityBuilder::IOS::Helper.new(project_path)
35
35
 
36
+ # Check to see if a project has been passed in
37
+ return unless helper.has_project?
38
+
36
39
  helper.build.replace_bundle_id(@options['bundle_id'])
37
40
 
38
41
  helper.build.replace_dev_team(dev_team)
@@ -63,6 +66,7 @@ module Hive
63
66
  file_system.fetch_build(job.build, app_path)
64
67
  app_info = DeviceAPI::IOS::Plistutil.get_bundle_id_from_app(app_path)
65
68
  app_bundle = app_info['CFBundleIdentifier']
69
+ DeviceAPI::IOS.device(self.device['serial']).install(app_path)
66
70
  script.set_env 'BUNDLE_ID', app_bundle
67
71
  else
68
72
  alter_project(file_system.home_path + '/test_code/code/')
@@ -70,20 +74,22 @@ module Hive
70
74
 
71
75
  ip_address = DeviceAPI::IOS::IPAddress.address(self.device['serial'])
72
76
 
73
- script.set_env 'CHARLES_PROXY_PORT', @ports.reserve(queue_name: 'Charles')
77
+ script.set_env 'CHARLES_PROXY_PORT', @worker_ports.reserve(queue_name: 'Charles') { @port_allocator.allocate_port }
74
78
 
75
79
  # TODO: Allow the scheduler to specify the ports to use
76
80
 
77
- script.set_env 'APPIUM_PORT', @worker_ports.reserve(queue_name: 'Appium') { self.allocate_port }
78
- script.set_env 'BOOTSTRAP_PORT', @worker_ports.reserve(queue_name: 'Bootstrap') { self.allocate_port }
79
- script.set_env 'CHROMEDRIVER_PORT', @worker_ports.reserve(queue_name: 'Chromedriver') { self.allocate_port }
81
+ script.set_env 'APPIUM_PORT', @worker_ports.reserve(queue_name: 'Appium') { @port_allocator.allocate_port }
82
+ script.set_env 'BOOTSTRAP_PORT', @worker_ports.reserve(queue_name: 'Bootstrap') { @port_allocator.allocate_port }
83
+ script.set_env 'CHROMEDRIVER_PORT', @worker_ports.reserve(queue_name: 'Chromedriver') { @port_allocator.allocate_port }
80
84
 
81
85
  script.set_env 'APP_PATH', app_path
82
86
  script.set_env 'APP_BUNDLE_PATH', app_path
83
87
  script.set_env 'DEVICE_TARGET', self.device['serial']
88
+
89
+ # Required for Calabash testing
84
90
  script.set_env 'DEVICE_ENDPOINT', "http://#{ip_address}:37265"
85
91
 
86
- "#{self.device['serial']} #{@ports.ports['Appium']} #{app_path} #{file_system.results_path}"
92
+ "#{self.device['serial']} #{@worker_ports.ports['Appium']} #{app_path} #{file_system.results_path}"
87
93
  end
88
94
 
89
95
  def job_message_klass
@@ -93,7 +99,7 @@ module Hive
93
99
  def post_script(job, file_system, script)
94
100
  @log.info('Post script')
95
101
  @worker_ports.ports.each do |name, port|
96
- self.release_port(port)
102
+ @port_allocator.release_port(port)
97
103
  end
98
104
  set_device_status('idle')
99
105
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hive-runner-ios
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Wilson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-23 00:00:00.000000000 Z
11
+ date: 2016-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: device_api-ios