appsignal 4.0.6-java → 4.0.7-java
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/CHANGELOG.md +12 -0
- data/Rakefile +9 -9
- data/appsignal.gemspec +22 -1
- data/ext/agent.rb +27 -27
- data/lib/appsignal/check_in.rb +1 -1
- data/lib/appsignal/config.rb +1 -3
- data/lib/appsignal/integrations/resque.rb +1 -6
- data/lib/appsignal/utils/hash_sanitizer.rb +4 -0
- data/lib/appsignal/version.rb +1 -1
- metadata +2 -192
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
- data/.github/ISSUE_TEMPLATE/chore.md +0 -14
- data/.github/workflows/ci.yml +0 -3285
- data/.github/workflows/create_release_from_tag.yml +0 -62
- data/.gitignore +0 -35
- data/.gitmodules +0 -3
- data/.rspec +0 -4
- data/.yardopts +0 -8
- data/benchmark.rake +0 -139
- data/gemfiles/capistrano2.gemfile +0 -6
- data/gemfiles/capistrano3.gemfile +0 -7
- data/gemfiles/dry-monitor.gemfile +0 -5
- data/gemfiles/grape.gemfile +0 -5
- data/gemfiles/hanami-2.0.gemfile +0 -7
- data/gemfiles/hanami-2.1.gemfile +0 -7
- data/gemfiles/http5.gemfile +0 -5
- data/gemfiles/no_dependencies.gemfile +0 -10
- data/gemfiles/padrino.gemfile +0 -7
- data/gemfiles/psych-3.gemfile +0 -5
- data/gemfiles/psych-4.gemfile +0 -5
- data/gemfiles/que-1.gemfile +0 -5
- data/gemfiles/que-2.gemfile +0 -5
- data/gemfiles/rails-6.0.gemfile +0 -10
- data/gemfiles/rails-6.1.gemfile +0 -11
- data/gemfiles/rails-7.0.gemfile +0 -11
- data/gemfiles/rails-7.1.gemfile +0 -11
- data/gemfiles/rails-7.2.gemfile +0 -11
- data/gemfiles/redis-4.gemfile +0 -5
- data/gemfiles/redis-5.gemfile +0 -6
- data/gemfiles/resque-2.gemfile +0 -6
- data/gemfiles/sequel.gemfile +0 -10
- data/gemfiles/sinatra.gemfile +0 -5
- data/gemfiles/webmachine1.gemfile +0 -7
- data/gemfiles/webmachine2.gemfile +0 -6
- data/mono.yml +0 -16
- data/spec/.rubocop.yml +0 -7
- data/spec/lib/appsignal/auth_check_spec.rb +0 -84
- data/spec/lib/appsignal/capistrano2_spec.rb +0 -227
- data/spec/lib/appsignal/capistrano3_spec.rb +0 -284
- data/spec/lib/appsignal/check_in/cron_spec.rb +0 -210
- data/spec/lib/appsignal/check_in/scheduler_spec.rb +0 -557
- data/spec/lib/appsignal/cli/demo_spec.rb +0 -46
- data/spec/lib/appsignal/cli/diagnose/paths_spec.rb +0 -16
- data/spec/lib/appsignal/cli/diagnose/utils_spec.rb +0 -86
- data/spec/lib/appsignal/cli/diagnose_spec.rb +0 -1553
- data/spec/lib/appsignal/cli/helpers_spec.rb +0 -179
- data/spec/lib/appsignal/cli/install_spec.rb +0 -848
- data/spec/lib/appsignal/cli_spec.rb +0 -56
- data/spec/lib/appsignal/config_spec.rb +0 -1380
- data/spec/lib/appsignal/demo_spec.rb +0 -83
- data/spec/lib/appsignal/environment_spec.rb +0 -190
- data/spec/lib/appsignal/event_formatter/action_view/render_formatter_spec.rb +0 -60
- data/spec/lib/appsignal/event_formatter/active_record/instantiation_formatter_spec.rb +0 -21
- data/spec/lib/appsignal/event_formatter/active_record/sql_formatter_spec.rb +0 -21
- data/spec/lib/appsignal/event_formatter/elastic_search/search_formatter_spec.rb +0 -52
- data/spec/lib/appsignal/event_formatter/faraday/request_formatter_spec.rb +0 -21
- data/spec/lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter_spec.rb +0 -84
- data/spec/lib/appsignal/event_formatter/rom/sql_formatter_spec.rb +0 -22
- data/spec/lib/appsignal/event_formatter/sequel/sql_formatter_spec.rb +0 -30
- data/spec/lib/appsignal/event_formatter/view_component/render_formatter_spec.rb +0 -41
- data/spec/lib/appsignal/event_formatter_spec.rb +0 -193
- data/spec/lib/appsignal/extension/jruby_spec.rb +0 -46
- data/spec/lib/appsignal/extension_install_failure_spec.rb +0 -20
- data/spec/lib/appsignal/extension_spec.rb +0 -178
- data/spec/lib/appsignal/garbage_collection_spec.rb +0 -98
- data/spec/lib/appsignal/hooks/action_cable_spec.rb +0 -345
- data/spec/lib/appsignal/hooks/action_mailer_spec.rb +0 -55
- data/spec/lib/appsignal/hooks/active_support_notifications/finish_with_state_shared_examples.rb +0 -23
- data/spec/lib/appsignal/hooks/active_support_notifications/instrument_shared_examples.rb +0 -99
- data/spec/lib/appsignal/hooks/active_support_notifications/start_finish_shared_examples.rb +0 -47
- data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +0 -47
- data/spec/lib/appsignal/hooks/activejob_spec.rb +0 -650
- data/spec/lib/appsignal/hooks/at_exit_spec.rb +0 -105
- data/spec/lib/appsignal/hooks/celluloid_spec.rb +0 -40
- data/spec/lib/appsignal/hooks/data_mapper_spec.rb +0 -40
- data/spec/lib/appsignal/hooks/delayed_job_spec.rb +0 -38
- data/spec/lib/appsignal/hooks/dry_monitor_spec.rb +0 -83
- data/spec/lib/appsignal/hooks/excon_spec.rb +0 -67
- data/spec/lib/appsignal/hooks/gvl_spec.rb +0 -145
- data/spec/lib/appsignal/hooks/http_spec.rb +0 -37
- data/spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb +0 -46
- data/spec/lib/appsignal/hooks/mri_spec.rb +0 -23
- data/spec/lib/appsignal/hooks/net_http_spec.rb +0 -18
- data/spec/lib/appsignal/hooks/passenger_spec.rb +0 -30
- data/spec/lib/appsignal/hooks/puma_spec.rb +0 -80
- data/spec/lib/appsignal/hooks/que_spec.rb +0 -19
- data/spec/lib/appsignal/hooks/rake_spec.rb +0 -144
- data/spec/lib/appsignal/hooks/redis_client_spec.rb +0 -218
- data/spec/lib/appsignal/hooks/redis_spec.rb +0 -124
- data/spec/lib/appsignal/hooks/resque_spec.rb +0 -27
- data/spec/lib/appsignal/hooks/sequel_spec.rb +0 -44
- data/spec/lib/appsignal/hooks/shoryuken_spec.rb +0 -29
- data/spec/lib/appsignal/hooks/sidekiq_spec.rb +0 -115
- data/spec/lib/appsignal/hooks/unicorn_spec.rb +0 -63
- data/spec/lib/appsignal/hooks/webmachine_spec.rb +0 -24
- data/spec/lib/appsignal/hooks_spec.rb +0 -124
- data/spec/lib/appsignal/integrations/data_mapper_spec.rb +0 -74
- data/spec/lib/appsignal/integrations/delayed_job_plugin_spec.rb +0 -454
- data/spec/lib/appsignal/integrations/http_spec.rb +0 -111
- data/spec/lib/appsignal/integrations/mongo_ruby_driver_spec.rb +0 -154
- data/spec/lib/appsignal/integrations/net_http_spec.rb +0 -33
- data/spec/lib/appsignal/integrations/object_spec.rb +0 -347
- data/spec/lib/appsignal/integrations/puma_spec.rb +0 -150
- data/spec/lib/appsignal/integrations/que_spec.rb +0 -187
- data/spec/lib/appsignal/integrations/railtie_spec.rb +0 -457
- data/spec/lib/appsignal/integrations/resque_spec.rb +0 -155
- data/spec/lib/appsignal/integrations/shoryuken_spec.rb +0 -165
- data/spec/lib/appsignal/integrations/sidekiq_spec.rb +0 -640
- data/spec/lib/appsignal/integrations/webmachine_spec.rb +0 -136
- data/spec/lib/appsignal/loaders/grape_spec.rb +0 -12
- data/spec/lib/appsignal/loaders/hanami_spec.rb +0 -92
- data/spec/lib/appsignal/loaders/padrino_spec.rb +0 -273
- data/spec/lib/appsignal/loaders/sinatra_spec.rb +0 -44
- data/spec/lib/appsignal/loaders_spec.rb +0 -144
- data/spec/lib/appsignal/logger_spec.rb +0 -205
- data/spec/lib/appsignal/marker_spec.rb +0 -51
- data/spec/lib/appsignal/probes/gvl_spec.rb +0 -164
- data/spec/lib/appsignal/probes/mri_spec.rb +0 -162
- data/spec/lib/appsignal/probes/sidekiq_spec.rb +0 -333
- data/spec/lib/appsignal/probes_spec.rb +0 -414
- data/spec/lib/appsignal/rack/abstract_middleware_spec.rb +0 -370
- data/spec/lib/appsignal/rack/body_wrapper_spec.rb +0 -319
- data/spec/lib/appsignal/rack/event_handler_spec.rb +0 -441
- data/spec/lib/appsignal/rack/grape_middleware_spec.rb +0 -201
- data/spec/lib/appsignal/rack/hanami_middleware_spec.rb +0 -36
- data/spec/lib/appsignal/rack/instrumentation_middleware_spec.rb +0 -38
- data/spec/lib/appsignal/rack/rails_instrumentation_spec.rb +0 -126
- data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +0 -217
- data/spec/lib/appsignal/rack_spec.rb +0 -243
- data/spec/lib/appsignal/sample_data_spec.rb +0 -238
- data/spec/lib/appsignal/span_spec.rb +0 -141
- data/spec/lib/appsignal/system_spec.rb +0 -126
- data/spec/lib/appsignal/transaction_spec.rb +0 -2115
- data/spec/lib/appsignal/transmitter_spec.rb +0 -198
- data/spec/lib/appsignal/utils/data_spec.rb +0 -166
- data/spec/lib/appsignal/utils/hash_sanitizer_spec.rb +0 -182
- data/spec/lib/appsignal/utils/integration_logger_spec.rb +0 -21
- data/spec/lib/appsignal/utils/integration_memory_logger_spec.rb +0 -153
- data/spec/lib/appsignal/utils/json_spec.rb +0 -44
- data/spec/lib/appsignal/utils/query_params_sanitizer_spec.rb +0 -192
- data/spec/lib/appsignal_spec.rb +0 -1919
- data/spec/lib/puma/appsignal_spec.rb +0 -334
- data/spec/spec_helper.rb +0 -179
- data/spec/support/fixtures/generated_config.yml +0 -24
- data/spec/support/fixtures/projects/broken/config/appsignal.yml +0 -1
- data/spec/support/fixtures/projects/valid/config/appsignal.yml +0 -57
- data/spec/support/fixtures/projects/valid/log/.gitkeep +0 -0
- data/spec/support/fixtures/projects/valid_with_rails_app/config/application.rb +0 -16
- data/spec/support/fixtures/projects/valid_with_rails_app/config/appsignal.yml +0 -56
- data/spec/support/fixtures/projects/valid_with_rails_app/config/environment.rb +0 -10
- data/spec/support/fixtures/projects/valid_with_rails_app/log/.gitkeep +0 -0
- data/spec/support/fixtures/uploaded_file.txt +0 -0
- data/spec/support/hanami/hanami_app.rb +0 -29
- data/spec/support/helpers/action_mailer_helpers.rb +0 -25
- data/spec/support/helpers/activejob_helpers.rb +0 -27
- data/spec/support/helpers/api_request_helper.rb +0 -60
- data/spec/support/helpers/cli_helpers.rb +0 -40
- data/spec/support/helpers/config_helpers.rb +0 -66
- data/spec/support/helpers/dependency_helper.rb +0 -155
- data/spec/support/helpers/directory_helper.rb +0 -27
- data/spec/support/helpers/env_helpers.rb +0 -41
- data/spec/support/helpers/environment_metdata_helper.rb +0 -16
- data/spec/support/helpers/example_exception.rb +0 -13
- data/spec/support/helpers/example_standard_error.rb +0 -13
- data/spec/support/helpers/loader_helper.rb +0 -21
- data/spec/support/helpers/log_helpers.rb +0 -36
- data/spec/support/helpers/rails_helper.rb +0 -28
- data/spec/support/helpers/std_streams_helper.rb +0 -94
- data/spec/support/helpers/system_helpers.rb +0 -8
- data/spec/support/helpers/take_at_most_helper.rb +0 -21
- data/spec/support/helpers/time_helpers.rb +0 -11
- data/spec/support/helpers/transaction_helpers.rb +0 -122
- data/spec/support/helpers/wait_for_helper.rb +0 -39
- data/spec/support/matchers/contains_log.rb +0 -26
- data/spec/support/matchers/have_colorized_text.rb +0 -28
- data/spec/support/matchers/transaction.rb +0 -200
- data/spec/support/mocks/appsignal_mock.rb +0 -18
- data/spec/support/mocks/dummy_app.rb +0 -20
- data/spec/support/mocks/fake_gc_profiler.rb +0 -19
- data/spec/support/mocks/fake_gvl_tools.rb +0 -28
- data/spec/support/mocks/hash_like.rb +0 -10
- data/spec/support/mocks/mock_probe.rb +0 -13
- data/spec/support/mocks/puma_mock.rb +0 -43
- data/spec/support/shared_examples/instrument.rb +0 -48
- data/spec/support/stubs/appsignal/loaders/loader_stub.rb +0 -7
- data/spec/support/stubs/delayed_job.rb +0 -0
- data/spec/support/stubs/sidekiq/api.rb +0 -4
- data/spec/support/testing.rb +0 -203
- data/support/bundler_wrapper +0 -12
- data/support/install_deps +0 -33
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
if DependencyHelper.capistrano2_present?
|
|
2
|
-
require "capistrano"
|
|
3
|
-
require "capistrano/configuration"
|
|
4
|
-
require "appsignal/capistrano"
|
|
5
|
-
|
|
6
|
-
describe "Capistrano 2 integration" do
|
|
7
|
-
let(:out_stream) { std_stream }
|
|
8
|
-
let(:output) { out_stream.read }
|
|
9
|
-
let(:config) { build_config }
|
|
10
|
-
let(:capistrano_config) do
|
|
11
|
-
Capistrano::Configuration.new.tap do |c|
|
|
12
|
-
c.set(:rails_env, "production")
|
|
13
|
-
c.set(:repository, "main")
|
|
14
|
-
c.set(:deploy_to, "/home/username/app")
|
|
15
|
-
c.set(:current_release, "")
|
|
16
|
-
c.set(:current_revision, "503ce0923ed177a3ce000005")
|
|
17
|
-
c.dry_run = false
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
before { Appsignal::Integrations::Capistrano.tasks(capistrano_config) }
|
|
21
|
-
|
|
22
|
-
def run
|
|
23
|
-
capture_stdout(out_stream) do
|
|
24
|
-
capistrano_config.find_and_execute_task("appsignal:deploy")
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it "has a deploy task" do
|
|
29
|
-
expect(capistrano_config.find_task("appsignal:deploy")).to_not be_nil
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
describe "appsignal:deploy task" do
|
|
33
|
-
before do
|
|
34
|
-
ENV["USER"] = "batman"
|
|
35
|
-
ENV["PWD"] = project_fixture_path
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
context "config" do
|
|
39
|
-
before do
|
|
40
|
-
capistrano_config.dry_run = true
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
context "when appsignal_config is available" do
|
|
44
|
-
before do
|
|
45
|
-
capistrano_config.set(
|
|
46
|
-
:appsignal_config,
|
|
47
|
-
:name => "AppName",
|
|
48
|
-
:active => true,
|
|
49
|
-
:push_api_key => "abc"
|
|
50
|
-
)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
it "overrides the default config with the custom appsignal_config" do
|
|
54
|
-
original_new = Appsignal::Marker.method(:new)
|
|
55
|
-
|
|
56
|
-
expect(Appsignal::Marker).to receive(:new) do |data, given_config|
|
|
57
|
-
expect(given_config[:name]).to eq("AppName")
|
|
58
|
-
original_new.call(data, given_config)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
run
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
context "when rack_env is used instead of rails_env" do
|
|
65
|
-
before do
|
|
66
|
-
capistrano_config.unset(:rails_env)
|
|
67
|
-
capistrano_config.set(:rack_env, "rack_production")
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
it "uses the rack_env as the env" do
|
|
71
|
-
original_new = Appsignal::Marker.method(:new)
|
|
72
|
-
|
|
73
|
-
expect(Appsignal::Marker).to receive(:new) do |data, given_config|
|
|
74
|
-
expect(given_config.env).to eq("rack_production")
|
|
75
|
-
original_new.call(data, given_config)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
run
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
context "when stage is used instead of rack_env / rails_env" do
|
|
83
|
-
before do
|
|
84
|
-
capistrano_config.unset(:rails_env)
|
|
85
|
-
capistrano_config.set(:stage, "stage_production")
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
it "uses the stage as the env" do
|
|
89
|
-
original_new = Appsignal::Marker.method(:new)
|
|
90
|
-
|
|
91
|
-
expect(Appsignal::Marker).to receive(:new) do |data, given_config|
|
|
92
|
-
expect(given_config.env).to eq("stage_production")
|
|
93
|
-
original_new.call(data, given_config)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
run
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
context "when appsignal_env is set" do
|
|
101
|
-
before do
|
|
102
|
-
capistrano_config.set(:rack_env, "rack_production")
|
|
103
|
-
capistrano_config.set(:stage, "stage_production")
|
|
104
|
-
capistrano_config.set(:appsignal_env, "appsignal_production")
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
it "uses the appsignal_env as the env" do
|
|
108
|
-
original_new = Appsignal::Marker.method(:new)
|
|
109
|
-
|
|
110
|
-
expect(Appsignal::Marker).to receive(:new) do |data, given_config|
|
|
111
|
-
expect(given_config.env).to eq("appsignal_production")
|
|
112
|
-
original_new.call(data, given_config)
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
run
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
context "with invalid config" do
|
|
120
|
-
before do
|
|
121
|
-
capistrano_config.set(:appsignal_config, :push_api_key => nil)
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
it "does not continue with invalid config" do
|
|
125
|
-
run
|
|
126
|
-
expect(output).to include \
|
|
127
|
-
"Not notifying of deploy, config is not active for environment: production"
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
describe "markers" do
|
|
134
|
-
def stub_marker_request(data = {})
|
|
135
|
-
stub_api_request config, "markers", marker_data.merge(data)
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
let(:marker_data) do
|
|
139
|
-
{
|
|
140
|
-
:revision => "503ce0923ed177a3ce000005",
|
|
141
|
-
:user => "batman"
|
|
142
|
-
}
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
context "when active for this environment" do
|
|
146
|
-
it "transmits marker" do
|
|
147
|
-
stub_marker_request.to_return(:status => 200)
|
|
148
|
-
run
|
|
149
|
-
|
|
150
|
-
expect(output).to include \
|
|
151
|
-
"Notifying AppSignal of deploy with: revision: 503ce0923ed177a3ce000005," \
|
|
152
|
-
" user: batman",
|
|
153
|
-
"AppSignal has been notified of this deploy!"
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
context "with overridden revision" do
|
|
157
|
-
before do
|
|
158
|
-
capistrano_config.set(:appsignal_revision, "abc123")
|
|
159
|
-
stub_marker_request(:revision => "abc123").to_return(:status => 200)
|
|
160
|
-
run
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
it "transmits the overridden revision" do
|
|
164
|
-
expect(output).to include \
|
|
165
|
-
"Notifying AppSignal of deploy with: revision: abc123, user: batman",
|
|
166
|
-
"AppSignal has been notified of this deploy!"
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
context "with overridden deploy user" do
|
|
171
|
-
before do
|
|
172
|
-
capistrano_config.set(:appsignal_user, "robin")
|
|
173
|
-
stub_marker_request(:user => "robin").to_return(:status => 200)
|
|
174
|
-
run
|
|
175
|
-
end
|
|
176
|
-
|
|
177
|
-
it "transmits the overridden deploy user" do
|
|
178
|
-
expect(output).to include \
|
|
179
|
-
"Notifying AppSignal of deploy with: revision: 503ce0923ed177a3ce000005," \
|
|
180
|
-
" user: robin",
|
|
181
|
-
"AppSignal has been notified of this deploy!"
|
|
182
|
-
end
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
context "with failed request" do
|
|
186
|
-
before do
|
|
187
|
-
stub_marker_request.to_return(:status => 500)
|
|
188
|
-
run
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
it "does not transmit marker" do
|
|
192
|
-
expect(output).to include \
|
|
193
|
-
"Notifying AppSignal of deploy with: revision: 503ce0923ed177a3ce000005," \
|
|
194
|
-
" user: batman",
|
|
195
|
-
"Something went wrong while trying to notify AppSignal:"
|
|
196
|
-
expect(output).to_not include "AppSignal has been notified of this deploy!"
|
|
197
|
-
end
|
|
198
|
-
end
|
|
199
|
-
|
|
200
|
-
context "when dry run" do
|
|
201
|
-
before do
|
|
202
|
-
capistrano_config.dry_run = true
|
|
203
|
-
run
|
|
204
|
-
end
|
|
205
|
-
|
|
206
|
-
it "does not transmit marker" do
|
|
207
|
-
expect(output).to include \
|
|
208
|
-
"Dry run: AppSignal deploy marker not actually sent."
|
|
209
|
-
end
|
|
210
|
-
end
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
context "when not active for this environment" do
|
|
214
|
-
before do
|
|
215
|
-
capistrano_config.set(:rails_env, "nonsense")
|
|
216
|
-
run
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
it "does not transmit marker" do
|
|
220
|
-
expect(output).to include \
|
|
221
|
-
"Not notifying of deploy, config is not active for environment: nonsense"
|
|
222
|
-
end
|
|
223
|
-
end
|
|
224
|
-
end
|
|
225
|
-
end
|
|
226
|
-
end
|
|
227
|
-
end
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
if DependencyHelper.capistrano3_present?
|
|
2
|
-
require "capistrano/all"
|
|
3
|
-
require "capistrano/deploy"
|
|
4
|
-
require "appsignal/capistrano"
|
|
5
|
-
|
|
6
|
-
describe "Capistrano 3 integration" do
|
|
7
|
-
let(:capistrano) { Class.new.extend(Capistrano::DSL) }
|
|
8
|
-
let(:env) { :production }
|
|
9
|
-
let(:options) { {} }
|
|
10
|
-
let(:config) { build_config(:env => env, :options => options) }
|
|
11
|
-
let(:out_stream) { std_stream }
|
|
12
|
-
let(:output) { out_stream.read }
|
|
13
|
-
let(:logger) { Logger.new(out_stream) }
|
|
14
|
-
let!(:capistrano_config) do
|
|
15
|
-
Capistrano::Configuration.reset!
|
|
16
|
-
Capistrano::Configuration.env.tap do |c|
|
|
17
|
-
c.set(:log_level, :error)
|
|
18
|
-
c.set(:logger, logger)
|
|
19
|
-
c.set(:rails_env, "production")
|
|
20
|
-
c.set(:repository, "main")
|
|
21
|
-
c.set(:deploy_to, "/home/username/app")
|
|
22
|
-
c.set(:current_release, "")
|
|
23
|
-
c.set(:current_revision, "503ce0923ed177a3ce000005")
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
let(:marker_data) do
|
|
27
|
-
{
|
|
28
|
-
:revision => "503ce0923ed177a3ce000005",
|
|
29
|
-
:user => "batman"
|
|
30
|
-
}
|
|
31
|
-
end
|
|
32
|
-
before { Rake::Task["appsignal:deploy"].reenable }
|
|
33
|
-
|
|
34
|
-
def run
|
|
35
|
-
capture_std_streams(out_stream, out_stream) do
|
|
36
|
-
capistrano.invoke("appsignal:deploy")
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it "should have a deploy task" do
|
|
41
|
-
expect(Rake::Task.task_defined?("appsignal:deploy")).to be_truthy
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
describe "appsignal:deploy task" do
|
|
45
|
-
before do
|
|
46
|
-
ENV["USER"] = "batman"
|
|
47
|
-
end
|
|
48
|
-
around do |example|
|
|
49
|
-
Dir.chdir project_fixture_path do
|
|
50
|
-
example.run
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
context "config" do
|
|
55
|
-
let(:options) { { :name => "AppName" } }
|
|
56
|
-
before do
|
|
57
|
-
capistrano_config.set(
|
|
58
|
-
:appsignal_config,
|
|
59
|
-
:name => "AppName",
|
|
60
|
-
:active => true,
|
|
61
|
-
:push_api_key => "abc"
|
|
62
|
-
)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
context "when rack_env is the only env set" do
|
|
66
|
-
let(:env) { "rack_production" }
|
|
67
|
-
before do
|
|
68
|
-
capistrano_config.delete(:rails_env)
|
|
69
|
-
capistrano_config.set(:rack_env, env)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
it "uses the rack_env as the env" do
|
|
73
|
-
stub_marker_request(
|
|
74
|
-
:environment => env.to_s,
|
|
75
|
-
:name => "AppName",
|
|
76
|
-
:push_api_key => "abc"
|
|
77
|
-
).to_return(:status => 200)
|
|
78
|
-
original_new = Appsignal::Marker.method(:new)
|
|
79
|
-
|
|
80
|
-
expect(Appsignal::Marker).to receive(:new) do |data, given_config|
|
|
81
|
-
expect(given_config.env).to eq("rack_production")
|
|
82
|
-
original_new.call(data, given_config)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
run
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
context "when stage is set" do
|
|
90
|
-
let(:env) { "stage_production" }
|
|
91
|
-
before do
|
|
92
|
-
capistrano_config.set(:rack_env, "rack_production")
|
|
93
|
-
capistrano_config.set(:stage, env)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
it "prefers the Capistrano stage rather than rails_env and rack_env" do
|
|
97
|
-
stub_marker_request(
|
|
98
|
-
:environment => env.to_s,
|
|
99
|
-
:name => "AppName",
|
|
100
|
-
:push_api_key => "abc"
|
|
101
|
-
).to_return(:status => 200)
|
|
102
|
-
original_new = Appsignal::Marker.method(:new)
|
|
103
|
-
|
|
104
|
-
expect(Appsignal::Marker).to receive(:new) do |data, given_config|
|
|
105
|
-
expect(given_config.env).to eq("stage_production")
|
|
106
|
-
original_new.call(data, given_config)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
run
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
context "when `appsignal_config` is set" do
|
|
114
|
-
before do
|
|
115
|
-
ENV["APPSIGNAL_APP_NAME"] = "EnvName"
|
|
116
|
-
capistrano_config.set(:appsignal_config, :name => "CapName")
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
it "overrides the default config with the custom appsignal_config" do
|
|
120
|
-
stub_marker_request(
|
|
121
|
-
:environment => env.to_s,
|
|
122
|
-
:name => "CapName",
|
|
123
|
-
:push_api_key => "abc"
|
|
124
|
-
).to_return(:status => 200)
|
|
125
|
-
original_new = Appsignal::Marker.method(:new)
|
|
126
|
-
|
|
127
|
-
expect(Appsignal::Marker).to receive(:new) do |data, given_config|
|
|
128
|
-
expect(given_config[:name]).to eq("CapName")
|
|
129
|
-
original_new.call(data, given_config)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
run
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
context "with invalid config" do
|
|
136
|
-
before do
|
|
137
|
-
capistrano_config.set(:appsignal_config, :push_api_key => nil)
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
it "does not continue with invalid config" do
|
|
141
|
-
run
|
|
142
|
-
expect(output).to include \
|
|
143
|
-
"Not notifying of deploy, config is not active for environment: production"
|
|
144
|
-
end
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
context "when `appsignal_env` is set" do
|
|
149
|
-
let(:env) { "appsignal_production" }
|
|
150
|
-
before do
|
|
151
|
-
capistrano_config.set(:rack_env, "rack_production")
|
|
152
|
-
capistrano_config.set(:stage, "stage_production")
|
|
153
|
-
capistrano_config.set(:appsignal_env, env)
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
it "prefers the appsignal_env rather than stage, rails_env and rack_env" do
|
|
157
|
-
stub_marker_request(
|
|
158
|
-
:environment => env.to_s,
|
|
159
|
-
:name => "AppName",
|
|
160
|
-
:push_api_key => "abc"
|
|
161
|
-
).to_return(:status => 200)
|
|
162
|
-
original_new = Appsignal::Marker.method(:new)
|
|
163
|
-
|
|
164
|
-
expect(Appsignal::Marker).to receive(:new) do |data, given_config|
|
|
165
|
-
expect(given_config.env).to eq("appsignal_production")
|
|
166
|
-
original_new.call(data, given_config)
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
run
|
|
170
|
-
end
|
|
171
|
-
end
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
describe "markers" do
|
|
175
|
-
context "when active for this environment" do
|
|
176
|
-
it "transmits marker" do
|
|
177
|
-
stub_marker_request(
|
|
178
|
-
:environment => env.to_s,
|
|
179
|
-
:name => "TestApp",
|
|
180
|
-
:push_api_key => "abc"
|
|
181
|
-
).to_return(:status => 200)
|
|
182
|
-
run
|
|
183
|
-
|
|
184
|
-
expect(output).to include \
|
|
185
|
-
"Notifying AppSignal of deploy with: revision: 503ce0923ed177a3ce000005, " \
|
|
186
|
-
"user: batman",
|
|
187
|
-
"AppSignal has been notified of this deploy!"
|
|
188
|
-
end
|
|
189
|
-
|
|
190
|
-
context "with overridden revision" do
|
|
191
|
-
before do
|
|
192
|
-
capistrano_config.set(:appsignal_revision, "abc123")
|
|
193
|
-
stub_marker_request(
|
|
194
|
-
{
|
|
195
|
-
:environment => env.to_s,
|
|
196
|
-
:name => "TestApp",
|
|
197
|
-
:push_api_key => "abc"
|
|
198
|
-
},
|
|
199
|
-
:revision => "abc123"
|
|
200
|
-
).to_return(:status => 200)
|
|
201
|
-
run
|
|
202
|
-
end
|
|
203
|
-
|
|
204
|
-
it "transmits the overridden revision" do
|
|
205
|
-
expect(output).to include \
|
|
206
|
-
"Notifying AppSignal of deploy with: revision: abc123, user: batman",
|
|
207
|
-
"AppSignal has been notified of this deploy!"
|
|
208
|
-
end
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
context "with overridden deploy user" do
|
|
212
|
-
before do
|
|
213
|
-
capistrano_config.set(:appsignal_user, "robin")
|
|
214
|
-
stub_marker_request(
|
|
215
|
-
{
|
|
216
|
-
:environment => env.to_s,
|
|
217
|
-
:name => "TestApp",
|
|
218
|
-
:push_api_key => "abc"
|
|
219
|
-
},
|
|
220
|
-
:user => "robin"
|
|
221
|
-
).to_return(:status => 200)
|
|
222
|
-
run
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
it "transmits the overridden deploy user" do
|
|
226
|
-
expect(output).to include \
|
|
227
|
-
"Notifying AppSignal of deploy with: revision: 503ce0923ed177a3ce000005, " \
|
|
228
|
-
"user: robin",
|
|
229
|
-
"AppSignal has been notified of this deploy!"
|
|
230
|
-
end
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
if Gem::Version.new(Capistrano::VERSION) >= Gem::Version.new("3.5.0")
|
|
234
|
-
context "when dry run" do
|
|
235
|
-
before do
|
|
236
|
-
expect(capistrano_config).to receive(:dry_run?).and_return(true)
|
|
237
|
-
run
|
|
238
|
-
end
|
|
239
|
-
|
|
240
|
-
it "does not transmit the marker" do
|
|
241
|
-
expect(output).to include "Dry run: AppSignal deploy marker not actually sent."
|
|
242
|
-
end
|
|
243
|
-
end
|
|
244
|
-
end
|
|
245
|
-
|
|
246
|
-
context "with failed request" do
|
|
247
|
-
before do
|
|
248
|
-
stub_marker_request(
|
|
249
|
-
:environment => env.to_s,
|
|
250
|
-
:name => "TestApp",
|
|
251
|
-
:push_api_key => "abc"
|
|
252
|
-
).to_return(:status => 500)
|
|
253
|
-
run
|
|
254
|
-
end
|
|
255
|
-
|
|
256
|
-
it "does not transmit marker" do
|
|
257
|
-
expect(output).to include \
|
|
258
|
-
"Notifying AppSignal of deploy with: revision: 503ce0923ed177a3ce000005, " \
|
|
259
|
-
"user: batman",
|
|
260
|
-
"Something went wrong while trying to notify AppSignal:"
|
|
261
|
-
expect(output).to_not include "AppSignal has been notified of this deploy!"
|
|
262
|
-
end
|
|
263
|
-
end
|
|
264
|
-
end
|
|
265
|
-
|
|
266
|
-
context "when not active for this environment" do
|
|
267
|
-
before do
|
|
268
|
-
capistrano_config.set(:rails_env, "nonsense")
|
|
269
|
-
run
|
|
270
|
-
end
|
|
271
|
-
|
|
272
|
-
it "should not send deploy marker" do
|
|
273
|
-
expect(output).to include \
|
|
274
|
-
"Not notifying of deploy, config is not active for environment: nonsense"
|
|
275
|
-
end
|
|
276
|
-
end
|
|
277
|
-
end
|
|
278
|
-
end
|
|
279
|
-
end
|
|
280
|
-
|
|
281
|
-
def stub_marker_request(config = {}, data = {})
|
|
282
|
-
stub_api_request config, "markers", marker_data.merge(data)
|
|
283
|
-
end
|
|
284
|
-
end
|