bugsnag-maze-runner 8.6.0 → 8.7.0

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
  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