bugsnag-maze-runner 8.7.1 → 8.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/maze/bugsnag_config.rb +1 -0
- data/lib/maze/client/appium/bb_client.rb +4 -3
- data/lib/maze/client/appium/bb_devices.rb +14 -20
- data/lib/maze/client/appium/bs_devices.rb +4 -0
- data/lib/maze/client/selenium/bb_browsers.yml +12 -50
- data/lib/maze/client/selenium/bb_client.rb +4 -0
- data/lib/maze/client/selenium/bs_browsers.yml +6 -0
- data/lib/maze/configuration.rb +3 -0
- data/lib/maze/macos_utils.rb +4 -4
- data/lib/maze/maze_output.rb +0 -2
- data/lib/maze/option/parser.rb +4 -0
- data/lib/maze/option/processor.rb +1 -0
- data/lib/maze/option/validator.rb +5 -1
- data/lib/maze/option.rb +1 -0
- data/lib/maze.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03c53d6f8594ce559c2f2fb6296617d9b9f18227220b3a1148f297de154b8d60
|
4
|
+
data.tar.gz: 3ce0a4585f6caac3ed1291f8a9ca8921926dbe551dd298ea6d8c8299136a67c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf7ef0e05814ee96ddcc363de952c0f56cce6c98721ef3bf79ad7ade296d7390d5dc513efb1ac83645aba734a957c685fea9290d4980cf0de5986544340d34ae
|
7
|
+
data.tar.gz: 7a967300d0dfcba750dfbce12c31a70e3793d98c822d35de70ec9838658e8436bad3962668bd70a50ff087236c74b174332b899406e906f42cbdf2475b643aea
|
data/lib/maze/bugsnag_config.rb
CHANGED
@@ -21,6 +21,7 @@ module Maze
|
|
21
21
|
'pipeline': ENV['BUILDKITE_PIPELINE_NAME'],
|
22
22
|
'repo': ENV['BUILDKITE_REPO'],
|
23
23
|
'build url': ENV['BUILDKITE_BUILD_URL'],
|
24
|
+
'job url': ENV['BUILDKITE_BUILD_URL'] + "#" + ENV['BUILDKITE_JOB_ID'],
|
24
25
|
'branch': ENV['BUILDKITE_BRANCH'],
|
25
26
|
'builder': ENV['BUILDKITE_BUILD_CREATOR'],
|
26
27
|
'message': ENV['BUILDKITE_MESSAGE'],
|
@@ -30,10 +30,11 @@ module Maze
|
|
30
30
|
|
31
31
|
def device_capabilities
|
32
32
|
config = Maze.config
|
33
|
-
prefix = BitBarDevices.caps_prefix(config.appium_version)
|
34
33
|
capabilities = {
|
35
|
-
|
36
|
-
|
34
|
+
'appium:options' => {
|
35
|
+
'noReset' => true,
|
36
|
+
'newCommandTimeout' => 600
|
37
|
+
},
|
37
38
|
'bitbar:options' => {
|
38
39
|
# Some capabilities probably belong in the top level
|
39
40
|
# of the hash, but BitBar picks them up from here.
|
@@ -41,18 +41,11 @@ module Maze
|
|
41
41
|
Maze.config.os = platform
|
42
42
|
Maze.config.os_version = platform_version.to_f.floor
|
43
43
|
|
44
|
-
prefix = caps_prefix(Maze.config.appium_version)
|
45
|
-
|
46
44
|
case platform
|
47
45
|
when 'android'
|
48
|
-
|
49
|
-
'UiAutomator1'
|
50
|
-
else
|
51
|
-
'UiAutomator2'
|
52
|
-
end
|
53
|
-
make_android_hash(device_name, automation_name, prefix)
|
46
|
+
make_android_hash(device_name)
|
54
47
|
when 'ios'
|
55
|
-
make_ios_hash(device_name
|
48
|
+
make_ios_hash(device_name)
|
56
49
|
else
|
57
50
|
throw "Invalid device platform specified #{platform}"
|
58
51
|
end
|
@@ -98,34 +91,35 @@ module Maze
|
|
98
91
|
end
|
99
92
|
end
|
100
93
|
|
101
|
-
def make_android_hash(device
|
94
|
+
def make_android_hash(device)
|
102
95
|
hash = {
|
103
|
-
'automationName' => automation_name,
|
104
96
|
'platformName' => 'Android',
|
105
97
|
'deviceName' => 'Android Phone',
|
98
|
+
'appium:options' => {
|
99
|
+
'automationName' => 'UiAutomator2',
|
100
|
+
'autoGrantPermissions' => true,
|
101
|
+
'uiautomator2ServerInstallTimeout' => 60000
|
102
|
+
},
|
106
103
|
'bitbar:options' => {
|
107
|
-
"#{prefix}autoGrantPermissions" => true,
|
108
104
|
'device' => device,
|
109
105
|
}
|
110
106
|
}
|
111
107
|
hash.freeze
|
112
108
|
end
|
113
109
|
|
114
|
-
def make_ios_hash(device
|
110
|
+
def make_ios_hash(device)
|
115
111
|
{
|
116
|
-
'automationName' => 'XCUITest',
|
117
|
-
'deviceName' => 'iPhone device',
|
118
112
|
'platformName' => 'iOS',
|
119
|
-
|
113
|
+
'deviceName' => 'iPhone device',
|
114
|
+
'appium:options' => {
|
115
|
+
'automationName' => 'XCUITest',
|
116
|
+
'shouldTerminateApp' => 'true'
|
117
|
+
},
|
120
118
|
'bitbar:options' => {
|
121
119
|
'device' => device
|
122
120
|
}
|
123
121
|
}.freeze
|
124
122
|
end
|
125
|
-
|
126
|
-
def caps_prefix(appium_version)
|
127
|
-
appium_version.nil? || (appium_version.to_i >= 2) ? 'appium:' : ''
|
128
|
-
end
|
129
123
|
end
|
130
124
|
end
|
131
125
|
end
|
@@ -79,6 +79,7 @@ module Maze
|
|
79
79
|
'ANDROID_7' => make_android_hash('Google Pixel', '7.1'),
|
80
80
|
|
81
81
|
# iOS devices
|
82
|
+
'IOS_17' => make_ios_hash('iPhone 15', '17'),
|
82
83
|
'IOS_16' => make_ios_hash('iPhone 14', '16'),
|
83
84
|
'IOS_15' => make_ios_hash('iPhone 11 Pro', '15'),
|
84
85
|
'IOS_14' => make_ios_hash('iPhone 11', '14'),
|
@@ -110,6 +111,9 @@ module Maze
|
|
110
111
|
add_android 'Samsung Galaxy S8', '7.0', hash # ANDROID_7_0_SAMSUNG_GALAXY_S8
|
111
112
|
|
112
113
|
# Specific iOS devices
|
114
|
+
add_ios 'iPhone 15', '17.0', hash # IOS_17_0_IPHONE_15
|
115
|
+
add_ios 'iPhone 12 Pro', '17.0', hash # IOS_17_0_IPHONE_12_PRO
|
116
|
+
|
113
117
|
add_ios 'iPhone 14 Plus', '16.0', hash # IOS_16_0_IPHONE_14_PLUS
|
114
118
|
add_ios 'iPhone 14 Pro', '16.0', hash # IOS_16_0_IPHONE_14_PRO
|
115
119
|
add_ios 'iPhone 14 Pro Max', '16.0', hash # IOS_16_0_IPHONE_14_PRO_MAX
|
@@ -1,22 +1,14 @@
|
|
1
|
-
|
1
|
+
chrome:
|
2
2
|
platform: 'Windows'
|
3
3
|
osVersion: '11'
|
4
4
|
browserName: 'chrome'
|
5
|
-
version: 'latest'
|
6
5
|
resolution: '1920x1080'
|
7
6
|
|
8
|
-
|
9
|
-
platform: 'Windows'
|
10
|
-
osVersion: '11'
|
11
|
-
browserName: 'chrome'
|
12
|
-
version: '108'
|
13
|
-
resolution: '1920x1080'
|
14
|
-
|
15
|
-
chrome_107:
|
7
|
+
chrome_latest:
|
16
8
|
platform: 'Windows'
|
17
9
|
osVersion: '11'
|
18
10
|
browserName: 'chrome'
|
19
|
-
version: '
|
11
|
+
version: 'latest'
|
20
12
|
resolution: '1920x1080'
|
21
13
|
|
22
14
|
chrome_72:
|
@@ -33,53 +25,17 @@ chrome_43:
|
|
33
25
|
version: '43'
|
34
26
|
resolution: '1920x1080'
|
35
27
|
|
36
|
-
|
37
|
-
platform: 'Windows'
|
38
|
-
osVersion: '11'
|
39
|
-
browserName: 'firefox'
|
40
|
-
version: 'latest'
|
41
|
-
resolution: '1920x1080'
|
42
|
-
|
43
|
-
firefox_107:
|
28
|
+
firefox:
|
44
29
|
platform: 'Windows'
|
45
30
|
osVersion: '11'
|
46
31
|
browserName: 'firefox'
|
47
|
-
version: '107'
|
48
32
|
resolution: '1920x1080'
|
49
33
|
|
50
|
-
|
51
|
-
platform: 'Windows'
|
52
|
-
osVersion: '11'
|
53
|
-
browserName: 'firefox'
|
54
|
-
version: '106'
|
55
|
-
resolution: '1920x1080'
|
56
|
-
|
57
|
-
firefox_105:
|
58
|
-
platform: 'Windows'
|
59
|
-
osVersion: '11'
|
60
|
-
browserName: 'firefox'
|
61
|
-
version: '105'
|
62
|
-
resolution: '1920x1080'
|
63
|
-
|
64
|
-
firefox_104:
|
65
|
-
platform: 'Windows'
|
66
|
-
osVersion: '11'
|
67
|
-
browserName: 'firefox'
|
68
|
-
version: '104'
|
69
|
-
resolution: '1920x1080'
|
70
|
-
|
71
|
-
firefox_103:
|
72
|
-
platform: 'Windows'
|
73
|
-
osVersion: '11'
|
74
|
-
browserName: 'firefox'
|
75
|
-
version: '103'
|
76
|
-
resolution: '1920x1080'
|
77
|
-
|
78
|
-
firefox_102:
|
34
|
+
firefox_latest:
|
79
35
|
platform: 'Windows'
|
80
36
|
osVersion: '11'
|
81
37
|
browserName: 'firefox'
|
82
|
-
version: '
|
38
|
+
version: 'latest'
|
83
39
|
resolution: '1920x1080'
|
84
40
|
|
85
41
|
firefox_78:
|
@@ -96,6 +52,12 @@ ie_11:
|
|
96
52
|
version: '11'
|
97
53
|
resolution: '1920x1080'
|
98
54
|
|
55
|
+
edge:
|
56
|
+
platform: 'Windows'
|
57
|
+
osVersion: '11'
|
58
|
+
browserName: 'MicrosoftEdge'
|
59
|
+
resolution: '1920x1080'
|
60
|
+
|
99
61
|
edge_latest:
|
100
62
|
platform: 'Windows'
|
101
63
|
osVersion: '11'
|
@@ -8,8 +8,10 @@ module Maze
|
|
8
8
|
capabilities['bitbar_apiKey'] = config.access_key
|
9
9
|
browsers = YAML.safe_load(File.read("#{__dir__}/bb_browsers.yml"))
|
10
10
|
capabilities.merge! BitBarClientUtils.dashboard_capabilities
|
11
|
+
capabilities['version'] = config.browser_version unless config.browser_version.nil?
|
11
12
|
capabilities.merge! browsers[config.browser]
|
12
13
|
capabilities.merge! JSON.parse(config.capabilities_option)
|
14
|
+
capabilities['bitbar:options']['testTimeout'] = 900
|
13
15
|
config.capabilities = capabilities
|
14
16
|
|
15
17
|
if Maze::Client::BitBarClientUtils.use_local_tunnel?
|
@@ -20,6 +22,8 @@ module Maze
|
|
20
22
|
end
|
21
23
|
|
22
24
|
selenium_url = Maze.config.selenium_server_url
|
25
|
+
|
26
|
+
$logger.trace "Starting Selenium driver with capabilities: #{config.capabilities.to_json}"
|
23
27
|
Maze.driver = Maze::Driver::Browser.new :remote, selenium_url, config.capabilities
|
24
28
|
Maze.driver.start_driver
|
25
29
|
end
|
data/lib/maze/configuration.rb
CHANGED
data/lib/maze/macos_utils.rb
CHANGED
@@ -4,11 +4,11 @@ module Maze
|
|
4
4
|
class MacosUtils
|
5
5
|
class << self
|
6
6
|
def capture_screen(scenario)
|
7
|
-
path =
|
8
|
-
FileUtils.makedirs(path)
|
7
|
+
path = Maze::MazeOutput.new(scenario).output_folder
|
8
|
+
FileUtils.makedirs(path) unless File.exist?(path)
|
9
9
|
|
10
|
-
system(
|
10
|
+
system('/usr/sbin/screencapture', "#{path}/#{Maze::Helper.to_friendly_filename(scenario.name)}-screenshot.jpg")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
14
|
-
end
|
14
|
+
end
|
data/lib/maze/maze_output.rb
CHANGED
data/lib/maze/option/parser.rb
CHANGED
@@ -122,6 +122,10 @@ module Maze
|
|
122
122
|
'Browser to use (an entry in <farm>_browsers.yml)',
|
123
123
|
short: :none,
|
124
124
|
type: :string
|
125
|
+
opt Option::BROWSER_VERSION,
|
126
|
+
'Browser version to use (applies to entries in <farm>_browsers.yml that do not include a version)',
|
127
|
+
short: :none,
|
128
|
+
type: :string
|
125
129
|
opt Option::USERNAME,
|
126
130
|
'Device farm username. Consumes env var from environment based on farm set',
|
127
131
|
short: :none,
|
@@ -99,7 +99,11 @@ module Maze
|
|
99
99
|
elsif browser
|
100
100
|
browsers = YAML.safe_load(File.read("#{__dir__}/../client/selenium/bb_browsers.yml"))
|
101
101
|
|
102
|
-
|
102
|
+
if browsers.include? browser
|
103
|
+
if options[Option::BROWSER_VERSION].nil? && !browsers[browser].include?('version')
|
104
|
+
errors << "--#{Option::BROWSER_VERSION} must be specified for browser '#{browser}'"
|
105
|
+
end
|
106
|
+
else
|
103
107
|
browser_list = browsers.keys.join ', '
|
104
108
|
errors << "Browser type '#{browser}' unknown on BitBar. Must be one of: #{browser_list}."
|
105
109
|
end
|
data/lib/maze/option.rb
CHANGED
data/lib/maze.rb
CHANGED
@@ -7,7 +7,7 @@ require_relative 'maze/timers'
|
|
7
7
|
# Glues the various parts of MazeRunner together that need to be accessed globally,
|
8
8
|
# providing an alternative to the proliferation of global variables or singletons.
|
9
9
|
module Maze
|
10
|
-
VERSION = '8.
|
10
|
+
VERSION = '8.9.0'
|
11
11
|
|
12
12
|
class << self
|
13
13
|
attr_accessor :check, :driver, :internal_hooks, :mode, :start_time, :dynamic_retry, :public_address,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bugsnag-maze-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Kirkland
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|