bugsnag 6.12.2 → 6.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.yml +470 -0
  3. data/.rubocop_todo.yml +1 -1
  4. data/CHANGELOG.md +12 -0
  5. data/CONTRIBUTING.md +1 -9
  6. data/Gemfile +11 -6
  7. data/TESTING.md +81 -0
  8. data/VERSION +1 -1
  9. data/docker-compose.yml +46 -0
  10. data/dockerfiles/Dockerfile.jruby-unit-tests +13 -0
  11. data/dockerfiles/Dockerfile.ruby-maze-runner +26 -0
  12. data/dockerfiles/Dockerfile.ruby-unit-tests +12 -0
  13. data/features/delayed_job.feature +6 -22
  14. data/features/fixtures/delayed_job/Dockerfile +2 -4
  15. data/features/fixtures/delayed_job/app/Gemfile +1 -1
  16. data/features/fixtures/delayed_job/app/Rakefile +18 -0
  17. data/features/fixtures/docker-compose.yml +28 -40
  18. data/features/fixtures/expected_breadcrumbs/active_job.json +9 -0
  19. data/features/fixtures/expected_breadcrumbs/mongo_failed.json +15 -0
  20. data/features/fixtures/expected_breadcrumbs/mongo_filtered_request.json +15 -0
  21. data/features/fixtures/expected_breadcrumbs/mongo_filtered_result.json +15 -0
  22. data/features/fixtures/expected_breadcrumbs/mongo_success.json +14 -0
  23. data/features/fixtures/expected_breadcrumbs/request.json +13 -0
  24. data/features/fixtures/expected_breadcrumbs/sql_with_bindings.json +12 -0
  25. data/features/fixtures/expected_breadcrumbs/sql_without_bindings.json +11 -0
  26. data/features/fixtures/plain/Dockerfile +2 -2
  27. data/features/fixtures/plain/app/app.rb +1 -3
  28. data/features/fixtures/plain/app/delivery/fork_threadpool.rb +3 -1
  29. data/features/fixtures/plain/app/unhandled/{Interrupt.rb → interrupt.rb} +0 -0
  30. data/features/fixtures/rack1/Dockerfile +2 -2
  31. data/features/fixtures/rack2/Dockerfile +2 -2
  32. data/features/fixtures/rails3/Dockerfile +2 -2
  33. data/features/fixtures/rails3/app/Gemfile +4 -0
  34. data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +1 -1
  35. data/features/fixtures/rails4/Dockerfile +2 -5
  36. data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +1 -1
  37. data/features/fixtures/rails5/Dockerfile +2 -2
  38. data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +1 -1
  39. data/features/fixtures/rails6/Dockerfile +2 -2
  40. data/features/fixtures/rails6/app/Gemfile +3 -2
  41. data/features/fixtures/rails6/app/app/controllers/mongo_controller.rb +22 -0
  42. data/features/fixtures/rails6/app/app/models/mongo_model.rb +6 -0
  43. data/features/fixtures/rails6/app/config/environments/development.rb +2 -0
  44. data/features/fixtures/rails6/app/config/environments/production.rb +1 -0
  45. data/features/fixtures/rails6/app/config/environments/rails_env.rb +1 -0
  46. data/features/fixtures/rails6/app/config/environments/test.rb +1 -0
  47. data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +1 -1
  48. data/features/fixtures/rails6/app/config/mongoid.yml +23 -0
  49. data/features/fixtures/rails6/app/config/routes.rb +4 -0
  50. data/features/fixtures/resque/Dockerfile +2 -2
  51. data/features/fixtures/sidekiq/Dockerfile +5 -7
  52. data/features/fixtures/sidekiq/app/Gemfile +2 -1
  53. data/features/fixtures/sidekiq/app/Rakefile.rb +14 -0
  54. data/features/fixtures/sinatra1/Dockerfile +2 -2
  55. data/features/fixtures/sinatra2/Dockerfile +2 -2
  56. data/features/plain_features/add_tab.feature +24 -97
  57. data/features/plain_features/app_type.feature +6 -25
  58. data/features/plain_features/app_version.feature +6 -25
  59. data/features/plain_features/auto_notify.feature +4 -20
  60. data/features/plain_features/delivery.feature +12 -60
  61. data/features/plain_features/exception_data.feature +24 -94
  62. data/features/plain_features/filters.feature +9 -43
  63. data/features/plain_features/handled_errors.feature +16 -78
  64. data/features/plain_features/ignore_classes.feature +5 -23
  65. data/features/plain_features/ignore_report.feature +6 -24
  66. data/features/plain_features/proxies.feature +13 -56
  67. data/features/plain_features/release_stages.feature +9 -40
  68. data/features/plain_features/report_api_key.feature +9 -35
  69. data/features/plain_features/report_severity.feature +8 -35
  70. data/features/plain_features/report_stack_frames.feature +24 -92
  71. data/features/plain_features/report_user.feature +23 -96
  72. data/features/plain_features/unhandled_errors.feature +17 -88
  73. data/features/rails_features/api_key.feature +12 -62
  74. data/features/rails_features/app_type.feature +13 -62
  75. data/features/rails_features/app_version.feature +19 -86
  76. data/features/rails_features/auto_capture_sessions.feature +31 -120
  77. data/features/rails_features/auto_notify.feature +28 -113
  78. data/features/rails_features/before_notify.feature +18 -89
  79. data/features/rails_features/breadcrumbs.feature +40 -147
  80. data/features/rails_features/handled.feature +18 -88
  81. data/features/rails_features/ignore_classes.feature +12 -55
  82. data/features/rails_features/meta_data_filters.feature +6 -34
  83. data/features/rails_features/mongo_breadcrumbs.feature +22 -105
  84. data/features/rails_features/project_root.feature +19 -90
  85. data/features/rails_features/release_stage.feature +20 -88
  86. data/features/rails_features/send_code.feature +13 -59
  87. data/features/rails_features/send_environment.feature +7 -35
  88. data/features/rails_features/unhandled.feature +6 -33
  89. data/features/rails_features/user_info.feature +27 -68
  90. data/features/sidekiq.feature +12 -79
  91. data/features/steps/ruby_notifier_steps.rb +59 -15
  92. data/features/support/env.rb +12 -45
  93. data/lib/bugsnag/cleaner.rb +2 -3
  94. data/lib/bugsnag/configuration.rb +12 -0
  95. data/lib/bugsnag/stacktrace.rb +1 -4
  96. data/spec/configuration_spec.rb +11 -0
  97. data/spec/fixtures/apps/rails-initializer-config/Gemfile +5 -1
  98. data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +5 -1
  99. data/spec/fixtures/apps/rails-no-config/Gemfile +5 -1
  100. data/spec/integrations/logger_spec.rb +1 -1
  101. data/spec/integrations/rake_spec.rb +1 -1
  102. data/spec/stacktrace_spec.rb +39 -0
  103. metadata +21 -5
  104. data/.travis.yml +0 -122
  105. data/features/plain_features/api_key.feature +0 -25
@@ -2,7 +2,6 @@ require 'uri'
2
2
 
3
3
  module Bugsnag
4
4
  class Cleaner
5
- ENCODING_OPTIONS = {:invalid => :replace, :undef => :replace}.freeze
6
5
  FILTERED = '[FILTERED]'.freeze
7
6
  RECURSION = '[RECURSION]'.freeze
8
7
  OBJECT = '[OBJECT]'.freeze
@@ -60,9 +59,9 @@ module Bugsnag
60
59
  def clean_string(str)
61
60
  if defined?(str.encoding) && defined?(Encoding::UTF_8)
62
61
  if str.encoding == Encoding::UTF_8
63
- str.valid_encoding? ? str : str.encode('utf-16', ENCODING_OPTIONS).encode('utf-8')
62
+ str.valid_encoding? ? str : str.encode('utf-16', invalid: :replace, undef: :replace).encode('utf-8')
64
63
  else
65
- str.encode('utf-8', ENCODING_OPTIONS)
64
+ str.encode('utf-8', invalid: :replace, undef: :replace)
66
65
  end
67
66
  elsif defined?(Iconv)
68
67
  Iconv.conv('UTF-8//IGNORE', 'UTF-8', str) || str
@@ -63,6 +63,10 @@ module Bugsnag
63
63
  # @return [Integer] the maximum allowable amount of breadcrumbs per thread
64
64
  attr_reader :max_breadcrumbs
65
65
 
66
+ ##
67
+ # @return [Regexp] matching file paths out of project
68
+ attr_accessor :vendor_path
69
+
66
70
  API_KEY_REGEX = /[0-9a-f]{32}/i
67
71
  THREAD_LOCAL_NAME = "bugsnag_req_data"
68
72
 
@@ -81,6 +85,9 @@ module Bugsnag
81
85
 
82
86
  DEFAULT_MAX_BREADCRUMBS = 25
83
87
 
88
+ # Path to vendored code. Used to mark file paths as out of project.
89
+ DEFAULT_VENDOR_PATH = %r{^(vendor\/|\.bundle\/)}
90
+
84
91
  alias :track_sessions :auto_capture_sessions
85
92
  alias :track_sessions= :auto_capture_sessions=
86
93
 
@@ -125,6 +132,11 @@ module Bugsnag
125
132
  parse_proxy(proxy_uri)
126
133
  end
127
134
 
135
+ # Set up vendor_path regex to mark stacktrace file paths as out of project.
136
+ # Stacktrace lines that matches regex will be marked as "out of project"
137
+ # will only appear in the full trace.
138
+ self.vendor_path = DEFAULT_VENDOR_PATH
139
+
128
140
  # Set up logging
129
141
  self.logger = Logger.new(STDOUT)
130
142
  self.logger.level = Logger::INFO
@@ -7,9 +7,6 @@ module Bugsnag
7
7
  # e.g. "org.jruby.Ruby.runScript(Ruby.java:807)"
8
8
  JAVA_BACKTRACE_REGEX = /^(.*)\((.*)(?::([0-9]+))?\)$/
9
9
 
10
- # Path to vendored code. Used to mark file paths as out of project.
11
- VENDOR_PATH = /^(vendor\/|\.bundle\/)/
12
-
13
10
  ##
14
11
  # Process a backtrace and the configuration into a parsed stacktrace.
15
12
  def initialize(backtrace, configuration)
@@ -46,7 +43,7 @@ module Bugsnag
46
43
  if defined?(@configuration.project_root) && @configuration.project_root.to_s != ''
47
44
  trace_hash[:inProject] = true if file.start_with?(@configuration.project_root.to_s)
48
45
  file.sub!(/#{@configuration.project_root}\//, "")
49
- trace_hash.delete(:inProject) if file.match(VENDOR_PATH)
46
+ trace_hash.delete(:inProject) if file.match(@configuration.vendor_path)
50
47
  end
51
48
 
52
49
 
@@ -427,4 +427,15 @@ describe Bugsnag::Configuration do
427
427
  expect(second_array).to eq([1, 2])
428
428
  end
429
429
  end
430
+
431
+ describe "#vendor_path" do
432
+ it "returns the default vendor path" do
433
+ expect(subject.vendor_path).to eq(Bugsnag::Configuration::DEFAULT_VENDOR_PATH)
434
+ end
435
+
436
+ it "returns the defined vendor path" do
437
+ subject.vendor_path = /foo/
438
+ expect(subject.vendor_path).to eq(/foo/)
439
+ end
440
+ end
430
441
  end
@@ -1,5 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'railties', '4.2.10', require: %w(action_controller rails)
3
+ ruby_version = Gem::Version.new(RUBY_VERSION.dup)
4
+
5
+ gem 'railties', ruby_version <= Gem::Version.new('2.6') ? '4.2.10' : '~> 6.0.2', require: %w(action_controller rails)
6
+ gem 'rake', ruby_version <= Gem::Version.new('1.9.3') ? '~> 11.3.0' : '~> 12.3.0'
7
+ gem 'minitest', ruby_version <= Gem::Version.new('2.2') ? '5.11.3' : '~> 5.13.0'
4
8
  gem 'nokogiri', '1.6.8'
5
9
  gem 'bugsnag', path: '../../../..'
@@ -1,5 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'railties', '4.2.10', require: %w(action_controller rails)
3
+ ruby_version = Gem::Version.new(RUBY_VERSION.dup)
4
+
5
+ gem 'railties', ruby_version <= Gem::Version.new('2.6') ? '4.2.10' : '~> 6.0.2', require: %w(action_controller rails)
6
+ gem 'rake', ruby_version <= Gem::Version.new('1.9.3') ? '~> 11.3.0' : '~> 12.3.0'
7
+ gem 'minitest', ruby_version <= Gem::Version.new('2.2') ? '5.11.3' : '~> 5.13.0'
4
8
  gem 'nokogiri', '1.6.8'
5
9
  gem 'bugsnag', path: '../../../..'
@@ -1,5 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'railties', '4.2.10', require: %w(action_controller rails)
3
+ ruby_version = Gem::Version.new(RUBY_VERSION.dup)
4
+
5
+ gem 'railties', ruby_version <= Gem::Version.new('2.6') ? '4.2.10' : '~> 6.0.2', require: %w(action_controller rails)
6
+ gem 'rake', ruby_version <= Gem::Version.new('1.9.3') ? '~> 11.3.0' : '~> 12.3.0'
7
+ gem 'minitest', ruby_version <= Gem::Version.new('2.2') ? '5.11.3' : '~> 5.13.0'
4
8
  gem 'nokogiri', '1.6.8'
5
9
  gem 'bugsnag', path: '../../../..'
@@ -61,7 +61,7 @@ describe 'Configuration.logger' do
61
61
  end
62
62
  end
63
63
 
64
- context 'sets an invalid API key using the BUGSNAG_API_KEY env var' do
64
+ context 'when the API key is invalid in the bugsnag initializer' do
65
65
  it 'logs a warning' do
66
66
  skip "Incompatible with Ruby <2.0 and JRuby" if incompatible
67
67
  output = run_app('rails-invalid-initializer-config')
@@ -58,7 +58,7 @@ describe "Bugsnag Rake integration" do
58
58
  ENV['BUGSNAG_TEST_SERVER_PORT'] = server.config[:Port].to_s
59
59
  task_fixtures_path = File.join(File.dirname(__FILE__), '../fixtures', 'tasks')
60
60
  Dir.chdir(task_fixtures_path) do
61
- system("bundle exec rake test:crash > /dev/null 2>&1")
61
+ system("../../../bin/rake test:crash")
62
62
  end
63
63
 
64
64
  result = request()
@@ -87,4 +87,43 @@ describe Bugsnag::Stacktrace do
87
87
  })
88
88
  }
89
89
  end
90
+
91
+ context "with configurable vendor_path" do
92
+ let(:configuration) do
93
+ configuration = Bugsnag::Configuration.new
94
+ configuration.project_root = "/foo/bar"
95
+ configuration
96
+ end
97
+
98
+ let(:backtrace) do
99
+ [
100
+ "/foo/bar/app/models/user.rb:1:in `something'",
101
+ "/foo/bar/other_vendor/lib/dont.rb:1:in `to_s'",
102
+ "/foo/bar/vendor/lib/ignore_me.rb:1:in `to_s'",
103
+ "/foo/bar/.bundle/lib/ignore_me.rb:1:in `to_s'",
104
+ ]
105
+ end
106
+
107
+ def out_project_trace(stacktrace)
108
+ stacktrace.to_a.map do |trace_line|
109
+ trace_line[:file] if !trace_line[:inProject]
110
+ end.compact
111
+ end
112
+
113
+ it "marks vendor/ and .bundle/ as out-project by default" do
114
+ stacktrace = Bugsnag::Stacktrace.new(backtrace, configuration)
115
+
116
+ expect(out_project_trace(stacktrace)).to eq([
117
+ "vendor/lib/ignore_me.rb",
118
+ ".bundle/lib/ignore_me.rb",
119
+ ])
120
+ end
121
+
122
+ it "allows vendor_path to be configured and filters out backtrace file paths" do
123
+ configuration.vendor_path = /other_vendor\//
124
+ stacktrace = Bugsnag::Stacktrace.new(backtrace, configuration)
125
+
126
+ expect(out_project_trace(stacktrace)).to eq(["other_vendor/lib/dont.rb"])
127
+ end
128
+ end
90
129
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bugsnag
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.12.2
4
+ version: 6.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-24 00:00:00.000000000 Z
11
+ date: 2020-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -33,22 +33,27 @@ extra_rdoc_files:
33
33
  - README.md
34
34
  - CHANGELOG.md
35
35
  files:
36
+ - ".buildkite/pipeline.yml"
36
37
  - ".github/PULL_REQUEST_TEMPLATE.md"
37
38
  - ".gitignore"
38
39
  - ".rdoc_options"
39
40
  - ".rspec"
40
41
  - ".rubocop.yml"
41
42
  - ".rubocop_todo.yml"
42
- - ".travis.yml"
43
43
  - CHANGELOG.md
44
44
  - CONTRIBUTING.md
45
45
  - Gemfile
46
46
  - LICENSE.txt
47
47
  - README.md
48
48
  - Rakefile
49
+ - TESTING.md
49
50
  - UPGRADING.md
50
51
  - VERSION
51
52
  - bugsnag.gemspec
53
+ - docker-compose.yml
54
+ - dockerfiles/Dockerfile.jruby-unit-tests
55
+ - dockerfiles/Dockerfile.ruby-maze-runner
56
+ - dockerfiles/Dockerfile.ruby-unit-tests
52
57
  - features/.gitignore
53
58
  - features/delayed_job.feature
54
59
  - features/fixtures/delayed_job/Dockerfile
@@ -127,6 +132,14 @@ files:
127
132
  - features/fixtures/delayed_job/app/test/test_helper.rb
128
133
  - features/fixtures/delayed_job/app/tmp/.keep
129
134
  - features/fixtures/docker-compose.yml
135
+ - features/fixtures/expected_breadcrumbs/active_job.json
136
+ - features/fixtures/expected_breadcrumbs/mongo_failed.json
137
+ - features/fixtures/expected_breadcrumbs/mongo_filtered_request.json
138
+ - features/fixtures/expected_breadcrumbs/mongo_filtered_result.json
139
+ - features/fixtures/expected_breadcrumbs/mongo_success.json
140
+ - features/fixtures/expected_breadcrumbs/request.json
141
+ - features/fixtures/expected_breadcrumbs/sql_with_bindings.json
142
+ - features/fixtures/expected_breadcrumbs/sql_without_bindings.json
130
143
  - features/fixtures/plain/.dockerignore
131
144
  - features/fixtures/plain/Dockerfile
132
145
  - features/fixtures/plain/app/Gemfile
@@ -173,9 +186,9 @@ files:
173
186
  - features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_before_notify.rb
174
187
  - features/fixtures/plain/app/stack_frame_modification/mark_frames_in_project.rb
175
188
  - features/fixtures/plain/app/stack_frame_modification/remove_stack_frame.rb
176
- - features/fixtures/plain/app/unhandled/Interrupt.rb
177
189
  - features/fixtures/plain/app/unhandled/bad_syntax.rb
178
190
  - features/fixtures/plain/app/unhandled/custom_error.rb
191
+ - features/fixtures/plain/app/unhandled/interrupt.rb
179
192
  - features/fixtures/plain/app/unhandled/load_error.rb
180
193
  - features/fixtures/plain/app/unhandled/local_jump_error.rb
181
194
  - features/fixtures/plain/app/unhandled/name_error.rb
@@ -450,6 +463,7 @@ files:
450
463
  - features/fixtures/rails6/app/app/controllers/handled_controller.rb
451
464
  - features/fixtures/rails6/app/app/controllers/ignore_classes_controller.rb
452
465
  - features/fixtures/rails6/app/app/controllers/metadata_filters_controller.rb
466
+ - features/fixtures/rails6/app/app/controllers/mongo_controller.rb
453
467
  - features/fixtures/rails6/app/app/controllers/project_root_controller.rb
454
468
  - features/fixtures/rails6/app/app/controllers/release_stage_controller.rb
455
469
  - features/fixtures/rails6/app/app/controllers/send_code_controller.rb
@@ -465,6 +479,7 @@ files:
465
479
  - features/fixtures/rails6/app/app/mailers/application_mailer.rb
466
480
  - features/fixtures/rails6/app/app/models/application_record.rb
467
481
  - features/fixtures/rails6/app/app/models/concerns/.keep
482
+ - features/fixtures/rails6/app/app/models/mongo_model.rb
468
483
  - features/fixtures/rails6/app/app/models/user.rb
469
484
  - features/fixtures/rails6/app/app/views/layouts/application.html.erb
470
485
  - features/fixtures/rails6/app/app/views/layouts/mailer.html.erb
@@ -492,6 +507,7 @@ files:
492
507
  - features/fixtures/rails6/app/config/initializers/mime_types.rb
493
508
  - features/fixtures/rails6/app/config/initializers/wrap_parameters.rb
494
509
  - features/fixtures/rails6/app/config/locales/en.yml
510
+ - features/fixtures/rails6/app/config/mongoid.yml
495
511
  - features/fixtures/rails6/app/config/puma.rb
496
512
  - features/fixtures/rails6/app/config/routes.rb
497
513
  - features/fixtures/rails6/app/config/secrets.yml
@@ -540,6 +556,7 @@ files:
540
556
  - features/fixtures/sidekiq/.dockerignore
541
557
  - features/fixtures/sidekiq/Dockerfile
542
558
  - features/fixtures/sidekiq/app/Gemfile
559
+ - features/fixtures/sidekiq/app/Rakefile.rb
543
560
  - features/fixtures/sidekiq/app/app.rb
544
561
  - features/fixtures/sidekiq/app/initializers/HandledError.rb
545
562
  - features/fixtures/sidekiq/app/initializers/UnhandledError.rb
@@ -556,7 +573,6 @@ files:
556
573
  - features/fixtures/sinatra2/Gemfile
557
574
  - features/fixtures/sinatra2/app.rb
558
575
  - features/plain_features/add_tab.feature
559
- - features/plain_features/api_key.feature
560
576
  - features/plain_features/app_type.feature
561
577
  - features/plain_features/app_version.feature
562
578
  - features/plain_features/auto_notify.feature
@@ -1,122 +0,0 @@
1
- sudo: false
2
- language: ruby
3
-
4
- before_install:
5
- - gem update --system 2.6.14
6
- - gem --version
7
- - gem install bundler -v $BUNDLE_VERSION
8
- - bundle _${BUNDLE_VERSION}_ --version
9
-
10
- install:
11
- - bundle _${BUNDLE_VERSION}_ install --with "$GEMSETS" --binstubs
12
-
13
- script:
14
- - bundle exec ./bin/rake spec
15
-
16
- jobs:
17
- include:
18
- - stage: test
19
- env:
20
- - BUNDLE_VERSION=1.16.1
21
- - GEMSETS=test
22
- rvm: jruby-19mode
23
- - stage: test
24
- rvm: 1.9.3
25
- env:
26
- - BUNDLE_VERSION=1.12.0
27
- - GEMSETS=test
28
- - stage: test
29
- rvm: 2.0
30
- env:
31
- - BUNDLE_VERSION=1.12.0
32
- - GEMSETS=test
33
- - stage: test
34
- rvm: 2.1
35
- env:
36
- - BUNDLE_VERSION=1.12.0
37
- - GEMSETS=test
38
- - stage: test
39
- env:
40
- - BUNDLE_VERSION=1.12.0
41
- - GEMSETS="test sidekiq"
42
- rvm: 2.2
43
- - stage: test
44
- env:
45
- - BUNDLE_VERSION=1.12.0
46
- - GEMSETS="test sidekiq"
47
- rvm: 2.3
48
- - stage: test
49
- env:
50
- - BUNDLE_VERSION=1.12.0
51
- - GEMSETS="test sidekiq"
52
- rvm: 2.4
53
- - stage: test
54
- env:
55
- - BUNDLE_VERSION=1.12.0
56
- - GEMSETS="test sidekiq"
57
- rvm: 2.5
58
- - stage: test
59
- env:
60
- - BUNDLE_VERSION=1.12.0
61
- - GEMSETS="test sidekiq coverage"
62
- rvm: 2.6
63
- - stage: test
64
- env:
65
- - BUNDLE_VERSION=1.12.0
66
- - GEMSETS="test rubocop"
67
- rvm: 2.6
68
- script: bundle exec ./bin/rubocop lib/
69
- # - stage: test
70
- # addons:
71
- # apt:
72
- # packages:
73
- # - docker-ce
74
- # sudo: required
75
- # sevices:
76
- # - docker
77
- # env:
78
- # - BUNDLE_VERSION=1.12.0
79
- # - GEMSETS="test maze"
80
- # rmv: 2.4.1
81
- # script: bundle exec bugsnag-maze-runner -c features/plain_features
82
- # - stage: test
83
- # addons:
84
- # apt:
85
- # packages:
86
- # - docker-ce
87
- # sudo: required
88
- # sevices:
89
- # - docker
90
- # env:
91
- # - BUNDLE_VERSION=1.12.0
92
- # - GEMSETS="test maze"
93
- # rmv: 2.4.1
94
- # script: bundle exec bugsnag-maze-runner -c features/sidekiq.feature
95
- # - stage: test
96
- # addons:
97
- # apt:
98
- # packages:
99
- # - docker-ce
100
- # sudo: required
101
- # sevices:
102
- # - docker
103
- # env:
104
- # - BUNDLE_VERSION=1.12.0
105
- # - GEMSETS="test maze"
106
- # - MAX_MAZE_CONNECT_ATTEMPTS=20
107
- # rmv: 2.4.1
108
- # script: bundle exec bugsnag-maze-runner -c features/rails_features
109
- - stage: deploy
110
- env:
111
- - BUNDLE_VERSION=1.12.0
112
- - GEMSETS="test doc"
113
- rvm: 2.4.1
114
- script: bundle exec rake rdoc
115
- if: tag =~ ^v[1-9]
116
- deploy:
117
- provider: pages
118
- local_dir: rdoc # only include the contents of the generated docs dir
119
- skip_cleanup: true
120
- github_token: $GITHUB_TOKEN # set in travis-ci dashboard
121
- on:
122
- tags: true # only deploy when tag is applied to commit
@@ -1,25 +0,0 @@
1
- Feature: API Key configuration options
2
-
3
- Background:
4
- And I configure the bugsnag endpoint
5
-
6
- Scenario Outline: The API key configuration option can be set
7
- Given I set environment variable "RUBY_VERSION" to "<ruby version>"
8
- And I set environment variable "BUGSNAG_API_KEY" to "b35a2a72bd230ac0aa0f52715bbdc6aa"
9
- And I have built the service "plain-ruby"
10
- And I run the service "plain-ruby" with the command "bundle exec ruby configuration/api_key.rb"
11
- And I wait for 1 second
12
- Then I should receive a request
13
- And the request used the "Ruby Bugsnag Notifier" notifier
14
- And the request used payload v4 headers
15
- And the request contained the api key "b35a2a72bd230ac0aa0f52715bbdc6aa"
16
-
17
- Examples:
18
- | ruby version |
19
- | 1.9.3 |
20
- | 2.0 |
21
- | 2.1 |
22
- | 2.2 |
23
- | 2.3 |
24
- | 2.4 |
25
- | 2.5 |