hive-runner-ios 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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