bugsnag-maze-runner 8.6.0 → 8.7.0

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
  SHA256:
3
- metadata.gz: 96a68ab4f0db7889bf4889f9d3af3acaff592f9e24477df3e80c6d72ca32da0f
4
- data.tar.gz: 949f8c4cc9d658f7535b9ec7adb06a087ff5d649f68c08d9e74b223c207896ae
3
+ metadata.gz: 0b7f9aa07e4e22e0ba3a5e1190fc89ec96027c03f68715ff9fc1b12899f8d253
4
+ data.tar.gz: 4ec7ef8d4c1de53f7affa6e0a627265c451ebb89f0379b036faaf4b4af03923b
5
5
  SHA512:
6
- metadata.gz: f49cd17392e55b29924cd0a9ab9b11b41a0e1799d6d5659399674529123b1928b5b2608191a9db4cf355377316fc22ba9f7e000eda8a21446a774e127de5ace8
7
- data.tar.gz: 8c50541e8de8aed4ec810459bb0aaa67b4a4c4c80bdfdb106a1653868039036c9314cc7b07986a7551a2c8448b5761fc0d16c53d70817d5c58615085bb4ed31b
6
+ metadata.gz: 6e05c8bd71dab45c398f70f95295bf12338a6459e02dc4b296ba69576654753ea9522f1a6213e0b85ba0a47ba0a3e9375d2a4c747e4b23f3ef057c511d9a03bc
7
+ data.tar.gz: b364461de84878a0c9f0e1fca85782fef3d27c08b1f22f91f7cfc72cc15fc7a3ff98451d88a6300cef5bc3af7be61222e56030f87d5ec29162e5093a143eaadb
data/bin/purge-projects CHANGED
@@ -14,7 +14,7 @@ class PurgeProjectEntry
14
14
  p = Optimist::Parser.new do
15
15
  text 'Purge anonymous projects from BitBar'
16
16
  text ''
17
- text 'Requires BITBAR_API_KEY'
17
+ text 'Requires BITBAR_ACCESS_KEY'
18
18
  text ''
19
19
  text 'Usage [OPTIONS]'
20
20
  text ''
@@ -29,10 +29,10 @@ class PurgeProjectEntry
29
29
  p.parse ARGV
30
30
  end
31
31
 
32
- api_key = opts[:api_key] || ENV['BITBAR_API_KEY']
32
+ api_key = opts[:api_key] || ENV['BITBAR_ACCESS_KEY']
33
33
 
34
34
  if api_key.nil?
35
- $logger.warn "API KEY has not been provided or BITBAR_API_KEY has not been set"
35
+ $logger.warn "API KEY has not been provided or BITBAR_ACCESS_KEY has not been set"
36
36
  Optimist::with_standard_exception_handling p do
37
37
  raise Optimist::HelpNeeded
38
38
  end
@@ -91,7 +91,9 @@ InstallPlugin do |config|
91
91
 
92
92
  # Only add the retry plugin if --retry is not used on the command line
93
93
  config.filters << Maze::Plugins::GlobalRetryPlugin.new(config) if config.options[:retry].zero?
94
- config.filters << Maze::Plugins::BugsnagReportingPlugin.new(config)
94
+
95
+ # TODO: Reporting of test failures as errors deactivated pending PLAT-10963
96
+ #config.filters << Maze::Plugins::BugsnagReportingPlugin.new(config)
95
97
  end
96
98
 
97
99
  # Before each scenario
@@ -1,3 +1,5 @@
1
+ require 'bugsnag'
2
+
1
3
  module Maze
2
4
  # Determines the public IP address and port when running on Buildkite with the Elastic CI Stack for AWS
3
5
  class AwsPublicIp
@@ -52,7 +54,8 @@ module Maze
52
54
  json_string = result[0][0].strip
53
55
  json_result = JSON.parse(json_string)
54
56
  port = json_result['NetworkSettings']['Ports']["#{local_port}/tcp"][0]['HostPort']
55
- rescue StandardError
57
+ rescue StandardError => error
58
+ Bugsnag.notify error
56
59
  $logger.error "Unable to parse public port from: #{json_string}"
57
60
  return 0
58
61
  end
@@ -35,7 +35,6 @@ module Maze
35
35
  Bugsnag.notify($!)
36
36
  end
37
37
  end
38
-
39
38
  end
40
39
  end
41
40
  end
@@ -1,3 +1,4 @@
1
+ require 'bugsnag'
1
2
  require 'json'
2
3
 
3
4
  module Maze
@@ -26,8 +27,9 @@ module Maze
26
27
  # Ensure the device is unlocked
27
28
  begin
28
29
  Maze.driver.unlock
29
- rescue => e
30
- $logger.warn "Failed to unlock device: #{e}"
30
+ rescue => error
31
+ Bugsnag.notify error
32
+ $logger.warn "Failed to unlock device: #{error}"
31
33
  end
32
34
 
33
35
  log_run_intro
@@ -69,8 +71,9 @@ module Maze
69
71
  $logger.info "Running on device: #{udid}" unless udid.nil?
70
72
  end
71
73
  result
72
- rescue => start_error
73
- $logger.error "Session creation failed: #{start_error}"
74
+ rescue => error
75
+ Bugsnag.notify error
76
+ $logger.error "Session creation failed: #{error}"
74
77
  false
75
78
  end
76
79
  end
@@ -85,7 +88,6 @@ module Maze
85
88
  end
86
89
 
87
90
  unless success
88
- # TODO Bugsnag notify
89
91
  $logger.error 'Failed to create Appium driver, exiting'
90
92
  exit(::Maze::Api::ExitCode::SESSION_CREATION_FAILURE)
91
93
  end
@@ -103,8 +103,7 @@ module Maze
103
103
  end
104
104
  end
105
105
  rescue StandardError => e
106
- $logger.error "Error getting projects from BitBar"
107
- $logger.error e
106
+ $logger.error "Error getting projects from BitBar: #{e}"
108
107
  raise
109
108
  end
110
109
  projects
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'bugsnag'
2
3
  require 'open3'
3
4
  require 'fileutils'
4
5
  require 'json'
@@ -49,7 +50,8 @@ module Maze
49
50
  $logger.error "Unexpected response body: #{response}"
50
51
  raise 'App upload failed'
51
52
  end
52
- rescue JSON::ParserError
53
+ rescue JSON::ParserError => error
54
+ Bugsnag.notify error
53
55
  $logger.error "Expected JSON response, received: #{res}"
54
56
  raise
55
57
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bugsnag'
4
+
3
5
  module Maze
4
6
  module Client
5
7
  # Utils supporting the BrowserStack device farm integration
@@ -42,9 +44,11 @@ module Maze
42
44
  # Successful upload
43
45
  break
44
46
  end
45
- rescue Net::ReadTimeout
47
+ rescue Net::ReadTimeout => error
48
+ Bugsnag.notify error
46
49
  $logger.error "Upload failed due to ReadTimeout"
47
- rescue JSON::ParserError
50
+ rescue JSON::ParserError => error
51
+ Bugsnag.notify error
48
52
  $logger.error "Unexpected JSON response, received: #{body}"
49
53
  end
50
54
 
@@ -1,4 +1,5 @@
1
1
  require 'appium_lib'
2
+ require 'bugsnag'
2
3
  require 'json'
3
4
  require 'open3'
4
5
  require 'securerandom'
@@ -56,6 +57,8 @@ module Maze
56
57
  super
57
58
  $logger.info "Appium driver started in #{(Time.now - time).to_i}s"
58
59
  rescue => error
60
+ Bugsnag.notify(error)
61
+
59
62
  $logger.warn "Appium driver failed to start in #{(Time.now - time).to_i}s"
60
63
  $logger.warn "#{error.class} occurred with message: #{error.message}"
61
64
  raise error
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bugsnag'
3
4
  require 'selenium-webdriver'
4
5
 
5
6
  module Maze
@@ -122,6 +123,7 @@ module Maze
122
123
  $logger.info "Selenium driver started in #{(Time.now - time).to_i}s"
123
124
  @driver = driver
124
125
  rescue => error
126
+ Bugsnag.notify error
125
127
  $logger.warn "Selenium driver failed to start in #{(Time.now - time).to_i}s"
126
128
  raise error
127
129
  end
@@ -43,7 +43,10 @@ module Maze
43
43
  end
44
44
 
45
45
  def at_exit
46
- @client&.stop_session
46
+ if @client
47
+ $logger.info 'Stopping the Appium session'
48
+ @client.stop_session
49
+ end
47
50
  end
48
51
 
49
52
  private
data/lib/maze/logger.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bugsnag'
3
4
  require 'logger'
4
5
  require 'singleton'
5
6
 
@@ -78,8 +79,9 @@ module Maze
78
79
  else
79
80
  log_hash_by_field severity, data
80
81
  end
81
- rescue Encoding::UndefinedConversionError
82
+ rescue Encoding::UndefinedConversionError => error
82
83
  # Just give up, we don't want to risk a further error trying to log garbage
84
+ Bugsnag.notify error
83
85
  $logger.error 'Unable to log hash as JSON'
84
86
  end
85
87
  end
data/lib/maze/proxy.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bugsnag'
3
4
  require 'json'
4
5
  require 'singleton'
5
6
  require 'webrick'
@@ -82,10 +83,11 @@ module Maze
82
83
  config[:ProxyAuthProc] = authenticator.method(:authenticate).to_proc
83
84
  end
84
85
 
85
- # Crwate and start the proxy
86
+ # Create and start the proxy
86
87
  proxy = WEBrick::HTTPProxyServer.new config
87
88
  proxy.start
88
89
  rescue StandardError => e
90
+ Bugsnag.notify e
89
91
  $logger.warn "Failed to start proxy server: #{e.message}"
90
92
  ensure
91
93
  proxy&.shutdown
data/lib/maze/server.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bugsnag'
3
4
  require 'json'
4
5
  require 'securerandom'
5
6
  require 'webrick'
@@ -227,6 +228,7 @@ module Maze
227
228
  server.mount '/reflect', Servlets::ReflectiveServlet
228
229
  server.start
229
230
  rescue StandardError => e
231
+ Bugsnag.notify e
230
232
  $logger.warn "Failed to start mock server: #{e.message}"
231
233
  ensure
232
234
  server&.shutdown
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bugsnag'
4
+
3
5
  module Maze
4
6
  module Servlets
5
7
 
@@ -30,6 +32,7 @@ module Maze
30
32
  response.header['Access-Control-Allow-Origin'] = '*'
31
33
  response.status = Server.status_code('POST')
32
34
  rescue JSON::ParserError => e
35
+ Bugsnag.notify e
33
36
  msg = "Unable to parse request as JSON: #{e.message}"
34
37
  $logger.error msg
35
38
  Server.invalid_requests.add({
@@ -39,6 +42,7 @@ module Maze
39
42
  body: request.body
40
43
  })
41
44
  rescue StandardError => e
45
+ Bugsnag.notify e
42
46
  $logger.error "Invalid request: #{e.message}"
43
47
  Server.invalid_requests.add({
44
48
  invalid: true,
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'bugsnag'
2
3
  require 'rack'
3
4
 
4
5
  module Maze
@@ -41,10 +42,12 @@ module Maze
41
42
 
42
43
  reflect response, delay_ms, status
43
44
  rescue JSON::ParserError => e
45
+ Bugsnag.notify e
44
46
  msg = "Unable to parse request as JSON: #{e.message}"
45
47
  $logger.error msg
46
48
  response.status = 418
47
49
  rescue StandardError => e
50
+ Bugsnag.notify e
48
51
  $logger.error "Invalid request: #{e.message}"
49
52
  response.status = 500
50
53
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bugsnag'
3
4
  require 'zlib'
4
5
  require 'stringio'
5
6
  require 'json_schemer'
@@ -101,6 +102,7 @@ module Maze
101
102
  set_response_header response.header
102
103
  response.status = post_status_code
103
104
  rescue JSON::ParserError => e
105
+ Bugsnag.notify e
104
106
  msg = "Unable to parse request as JSON: #{e.message}"
105
107
  if Maze.config.captured_invalid_requests.include? @request_type
106
108
  $logger.error msg
@@ -113,6 +115,7 @@ module Maze
113
115
  $logger.warn msg
114
116
  end
115
117
  rescue StandardError => e
118
+ Bugsnag.notify e
116
119
  if Maze.config.captured_invalid_requests.include? @request_type
117
120
  $logger.error "Invalid request: #{e.message}"
118
121
  Server.invalid_requests.add({
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bugsnag'
3
4
  require 'socket'
4
5
 
5
6
  module Maze
@@ -33,6 +34,7 @@ module Maze
33
34
  end_connection(socket)
34
35
  }
35
36
  rescue StandardError => e
37
+ Bugsnag.notify e
36
38
  $logger.warn "Terminating server error: #{e.message}"
37
39
  end
38
40
 
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.6.0'
10
+ VERSION = '8.7.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.6.0
4
+ version: 8.7.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-09-16 00:00:00.000000000 Z
11
+ date: 2023-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber