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 +4 -4
- data/lib/hive/controller/ios.rb +20 -0
- data/lib/hive/worker/ios.rb +12 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9217a775fece75da70489ef669479a8966b3d98
|
4
|
+
data.tar.gz: dd897a7898c1ca344e458ac5e03956ff7d758461
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37018163ec68ba7c02b108f64e1fbbee5fcd4dbb3eb85b4c0a1b0f274b5e3adcf6762548343b96e46d127d8bb08b31d240395a787bcc17c656c708712262d3ed
|
7
|
+
data.tar.gz: 8f0f4d36c91f07e42040cd84dc602f4af6edabf5ed08283369d25d8ef7d81a41439cdbd44e86fe129f15fd899e6d46894ccc684d28ef0a5d7df8beeeae99e632
|
data/lib/hive/controller/ios.rb
CHANGED
@@ -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'] }
|
data/lib/hive/worker/ios.rb
CHANGED
@@ -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', @
|
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') {
|
78
|
-
script.set_env 'BOOTSTRAP_PORT', @worker_ports.reserve(queue_name: 'Bootstrap') {
|
79
|
-
script.set_env 'CHROMEDRIVER_PORT', @worker_ports.reserve(queue_name: 'Chromedriver') {
|
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']} #{@
|
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
|
-
|
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.
|
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:
|
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
|