appmap 0.78.0 → 0.80.1
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/.travis.yml +4 -16
- data/CHANGELOG.md +30 -0
- data/{spec/fixtures/rails5_users_app/Dockerfile.pg → Dockerfile.pg} +0 -0
- data/README.md +14 -44
- data/README_CI.md +0 -7
- data/Rakefile +12 -150
- data/appmap.gemspec +3 -2
- data/docker-compose.yml +10 -0
- data/lib/appmap/agent.rb +8 -0
- data/lib/appmap/event.rb +26 -12
- data/lib/appmap/gem_hooks/actionpack.yml +6 -0
- data/lib/appmap/handler/rails/render_handler.rb +29 -0
- data/lib/appmap/handler/rails/request_handler.rb +13 -11
- data/lib/appmap/handler/rails/sql_handler.rb +43 -1
- data/lib/appmap/handler.rb +3 -0
- data/lib/appmap/hook/method.rb +0 -1
- data/lib/appmap/version.rb +1 -1
- data/spec/config_spec.rb +1 -1
- data/spec/depends/api_spec.rb +13 -5
- data/spec/depends/spec_helper.rb +0 -9
- data/spec/fixtures/database.yml +11 -0
- data/spec/fixtures/rails5_users_app/config/database.yml +1 -0
- data/spec/fixtures/rails6_users_app/Gemfile +1 -25
- data/spec/fixtures/rails6_users_app/config/database.yml +1 -0
- data/spec/fixtures/rails7_users_app/Gemfile +1 -25
- data/spec/fixtures/rails7_users_app/config/database.yml +1 -0
- data/spec/handler/eval_spec.rb +1 -1
- data/spec/hook_spec.rb +6 -1
- data/spec/rails_recording_spec.rb +7 -21
- data/spec/rails_spec_helper.rb +76 -63
- data/spec/rails_test_spec.rb +7 -17
- data/spec/railtie_spec.rb +4 -18
- data/spec/record_sql_rails_pg_spec.rb +44 -75
- data/spec/remote_recording_spec.rb +18 -30
- data/spec/spec_helper.rb +1 -0
- data/spec/swagger/swagger_spec.rb +1 -16
- data/spec/util_spec.rb +1 -1
- data/test/expectations/openssl_test_key_sign2-3.1.json +2 -1
- metadata +22 -21
- data/Dockerfile.appmap +0 -5
- data/spec/fixtures/rack_users_app/Dockerfile +0 -32
- data/spec/fixtures/rack_users_app/docker-compose.yml +0 -9
- data/spec/fixtures/rails5_users_app/Dockerfile +0 -29
- data/spec/fixtures/rails5_users_app/config/database.yml +0 -18
- data/spec/fixtures/rails5_users_app/create_app +0 -33
- data/spec/fixtures/rails5_users_app/docker-compose.yml +0 -31
- data/spec/fixtures/rails6_users_app/.ruby-version +0 -1
- data/spec/fixtures/rails6_users_app/Dockerfile +0 -44
- data/spec/fixtures/rails6_users_app/Dockerfile.pg +0 -3
- data/spec/fixtures/rails6_users_app/config/database.yml +0 -18
- data/spec/fixtures/rails6_users_app/create_app +0 -33
- data/spec/fixtures/rails6_users_app/docker-compose.yml +0 -31
- data/spec/fixtures/rails7_users_app/.ruby-version +0 -1
- data/spec/fixtures/rails7_users_app/Dockerfile +0 -30
- data/spec/fixtures/rails7_users_app/Dockerfile.pg +0 -3
- data/spec/fixtures/rails7_users_app/config/database.yml +0 -86
- data/spec/fixtures/rails7_users_app/create_app +0 -31
- data/spec/fixtures/rails7_users_app/docker-compose.yml +0 -31
@@ -2,89 +2,58 @@ require 'rails_spec_helper'
|
|
2
2
|
|
3
3
|
describe 'SQL events' do
|
4
4
|
include_context 'Rails app pg database', 'spec/fixtures/rails6_users_app' do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
example.run
|
12
|
-
end
|
13
|
-
|
14
|
-
let(:tmpdir) { "tmp/spec/record_sql_rails_pg_spec" }
|
15
|
-
|
16
|
-
describe 'fields' do
|
17
|
-
let(:test_line_number) { 8 }
|
18
|
-
let(:appmap_json) { File.join(tmpdir, 'appmap/rspec/Api_UsersController_POST_api_users_with_required_parameters_creates_a_user.appmap.json') }
|
19
|
-
let(:orm_module) { 'sequel' }
|
20
|
-
let(:appmap) { JSON.parse(File.read(appmap_json)) }
|
21
|
-
describe 'on a call event' do
|
22
|
-
let(:event) do
|
23
|
-
appmap['events'].find do |event|
|
24
|
-
event['event'] == 'call' &&
|
25
|
-
event.keys.include?('sql_query')
|
5
|
+
def self.check_queries(cases)
|
6
|
+
cases.each do |test_case, query|
|
7
|
+
context "in #{test_case}" do
|
8
|
+
let(:test_case) { test_case }
|
9
|
+
it "captures #{query}" do
|
10
|
+
expect(sql_events).to include sql_query query
|
26
11
|
end
|
27
12
|
end
|
28
|
-
it 'do not include function-only fields' do
|
29
|
-
expect(event.keys).to_not include('defined_class')
|
30
|
-
expect(event.keys).to_not include('method_id')
|
31
|
-
expect(event.keys).to_not include('path')
|
32
|
-
expect(event.keys).to_not include('lineno')
|
33
|
-
end
|
34
13
|
end
|
35
14
|
end
|
36
15
|
|
37
|
-
|
38
|
-
|
39
|
-
context 'while creating a new record' do
|
40
|
-
let(:test_line_number) { 8 }
|
41
|
-
let(:appmap_json) { File.join(tmpdir, 'appmap/rspec/Api_UsersController_POST_api_users_with_required_parameters_creates_a_user.appmap.json') }
|
16
|
+
context 'with Sequel' do
|
17
|
+
before(:context) { run_specs 'sequel' }
|
42
18
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
SQL_QUERY
|
50
|
-
end
|
51
|
-
end
|
52
|
-
context 'using ActiveRecord ORM' do
|
53
|
-
let(:orm_module) { 'activerecord' }
|
54
|
-
it 'detects the sql INSERT' do
|
55
|
-
expect(appmap).to include(<<-SQL_QUERY.strip)
|
56
|
-
sql_query:
|
57
|
-
sql: INSERT INTO "users" ("login") VALUES ($1) RETURNING "id"
|
58
|
-
SQL_QUERY
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
19
|
+
check_queries(
|
20
|
+
'Api_UsersController_POST_api_users_with_required_parameters_creates_a_user' =>
|
21
|
+
%(INSERT INTO "users" ("login") VALUES ('alice') RETURNING *),
|
22
|
+
'Api_UsersController_GET_api_users_lists_the_users' => %(SELECT * FROM "users")
|
23
|
+
)
|
24
|
+
end
|
62
25
|
|
63
|
-
|
64
|
-
|
65
|
-
let(:appmap_json) { File.join(tmpdir, 'appmap/rspec/Api_UsersController_GET_api_users_lists_the_users.appmap.json') }
|
26
|
+
context 'with ActiveRecord' do
|
27
|
+
before(:context) { run_specs 'activerecord' }
|
66
28
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
29
|
+
check_queries(
|
30
|
+
'Api_UsersController_POST_api_users_with_required_parameters_creates_a_user' =>
|
31
|
+
%(INSERT INTO "users" ("login") VALUES ($1) RETURNING "id"),
|
32
|
+
'Api_UsersController_GET_api_users_lists_the_users' => %(SELECT "users".* FROM "users")
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def run_specs(orm_module)
|
37
|
+
@app.prepare_db
|
38
|
+
@app.run_cmd \
|
39
|
+
'./bin/rspec spec/controllers/users_controller_api_spec.rb:8 spec/controllers/users_controller_api_spec.rb:29',
|
40
|
+
'ORM_MODULE' => orm_module,
|
41
|
+
'RAILS_ENV' => 'test',
|
42
|
+
'APPMAP' => 'true'
|
43
|
+
end
|
44
|
+
|
45
|
+
let(:appmap_json) { File.join tmpdir, "appmap/rspec/#{test_case}.appmap.json" }
|
46
|
+
let(:appmap) { JSON.parse(File.read(appmap_json)) }
|
47
|
+
let(:tmpdir) { app.tmpdir }
|
48
|
+
let(:sql_events) { appmap['events'].select { |ev| ev.include? 'sql_query' } }
|
49
|
+
|
50
|
+
RSpec::Matchers.define_negated_matcher :not_include, :include
|
51
|
+
def sql_query(query)
|
52
|
+
(include('sql_query' => (include 'sql' => query)))
|
53
|
+
.and(not_include('defined_class'))
|
54
|
+
.and(not_include('method_id'))
|
55
|
+
.and(not_include('path'))
|
56
|
+
.and(not_include('lineno'))
|
88
57
|
end
|
89
58
|
end
|
90
59
|
end
|
@@ -1,41 +1,27 @@
|
|
1
1
|
require 'rails_spec_helper'
|
2
|
+
|
3
|
+
require 'random-port'
|
4
|
+
|
2
5
|
require 'net/http'
|
3
6
|
require 'socket'
|
4
7
|
|
5
8
|
describe 'remote recording', :order => :defined do
|
6
9
|
include_context 'Rails app pg database', 'spec/fixtures/rails6_users_app' do
|
7
10
|
before(:all) do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
@service_port = RandomPort::Pool::SINGLETON.acquire
|
12
|
+
@app.prepare_db
|
13
|
+
@server = @app.spawn_cmd \
|
14
|
+
"./bin/rails server -p #{@service_port}",
|
15
|
+
'ORM_MODULE' => 'sequel',
|
16
|
+
'APPMAP' => 'true'
|
14
17
|
|
15
|
-
port_cmd = 'docker-compose port app 3000'
|
16
|
-
port_out, = run_cmd port_cmd, chdir: fixture_dir
|
17
|
-
@service_port = port_out.strip.split(':')[1]
|
18
|
-
|
19
|
-
service_running = false
|
20
|
-
retry_count = 0
|
21
18
|
uri = URI("http://localhost:#{@service_port}/health")
|
22
19
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
status = res.response.code.to_i
|
31
|
-
service_running = true if status >= 200 && status < 300
|
32
|
-
|
33
|
-
# give up after a certain error threshold is met
|
34
|
-
# we don't want to wait forever if there's an unrecoverable issue
|
35
|
-
raise 'gave up waiting on fixture service' if (retry_count += 1) == 10
|
36
|
-
rescue Errno::ETIMEDOUT, Errno::ECONNRESET, EOFError
|
37
|
-
$stderr.print('.')
|
38
|
-
end
|
20
|
+
100.times do
|
21
|
+
Net::HTTP.get(uri)
|
22
|
+
break
|
23
|
+
rescue Errno::ECONNREFUSED
|
24
|
+
sleep 0.1
|
39
25
|
end
|
40
26
|
end
|
41
27
|
|
@@ -44,8 +30,10 @@ describe 'remote recording', :order => :defined do
|
|
44
30
|
end
|
45
31
|
|
46
32
|
after(:all) do
|
47
|
-
|
48
|
-
|
33
|
+
if @server
|
34
|
+
Process.kill 'INT', @server
|
35
|
+
Process.wait @server
|
36
|
+
end
|
49
37
|
end
|
50
38
|
|
51
39
|
let(:service_address) { URI("http://localhost:#{@service_port}") }
|
data/spec/spec_helper.rb
CHANGED
@@ -13,6 +13,7 @@ require 'appmap'
|
|
13
13
|
|
14
14
|
RSpec.configure do |config|
|
15
15
|
config.example_status_persistence_file_path = "tmp/rspec_failed_examples.txt"
|
16
|
+
config.profile_examples = true
|
16
17
|
end
|
17
18
|
|
18
19
|
# Re-run the Rails specs without re-generating the data. This is useful for efficiently enhancing and
|
@@ -4,24 +4,9 @@ describe 'rake appmap:swagger' do
|
|
4
4
|
include_context 'Rails app pg database', "spec/fixtures/rails6_users_app" unless use_existing_data?
|
5
5
|
include_context 'rails integration test setup'
|
6
6
|
|
7
|
-
def run_spec(spec_name)
|
8
|
-
cmd = <<~CMD.gsub "\n", ' '
|
9
|
-
docker-compose run --rm -e RAILS_ENV=test -e APPMAP=true
|
10
|
-
-v #{File.absolute_path tmpdir}:/app/tmp app ./bin/rspec #{spec_name}
|
11
|
-
CMD
|
12
|
-
run_cmd cmd, chdir: fixture_dir
|
13
|
-
end
|
14
|
-
|
15
|
-
def generate_swagger
|
16
|
-
cmd = <<~CMD.gsub "\n", ' '
|
17
|
-
docker-compose run --rm -v #{File.absolute_path tmpdir}:/app/tmp app ./bin/rake appmap:swagger
|
18
|
-
CMD
|
19
|
-
run_cmd cmd, chdir: fixture_dir
|
20
|
-
end
|
21
|
-
|
22
7
|
unless use_existing_data?
|
23
8
|
before(:all) do
|
24
|
-
|
9
|
+
@app.run_cmd './bin/rake appmap:swagger'
|
25
10
|
end
|
26
11
|
end
|
27
12
|
|
data/spec/util_spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.80.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Gilpin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '5.
|
89
|
+
version: '5.15'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '5.
|
96
|
+
version: '5.15'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: pry-byebug
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,6 +276,20 @@ dependencies:
|
|
276
276
|
- - ">="
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: random-port
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - "~>"
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: 0.5.1
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - "~>"
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: 0.5.1
|
279
293
|
- !ruby/object:Gem::Dependency
|
280
294
|
name: webrick
|
281
295
|
requirement: !ruby/object:Gem::Requirement
|
@@ -312,7 +326,7 @@ files:
|
|
312
326
|
- ARCHITECTURE.md
|
313
327
|
- CHANGELOG.md
|
314
328
|
- CONTRIBUTING.md
|
315
|
-
- Dockerfile.
|
329
|
+
- Dockerfile.pg
|
316
330
|
- Gemfile
|
317
331
|
- LICENSE.txt
|
318
332
|
- README.md
|
@@ -321,6 +335,7 @@ files:
|
|
321
335
|
- appmap.gemspec
|
322
336
|
- appmap.yml
|
323
337
|
- config-schema.yml
|
338
|
+
- docker-compose.yml
|
324
339
|
- examples/install.rb
|
325
340
|
- examples/mock_webapp/Gemfile
|
326
341
|
- examples/mock_webapp/appmap.yml
|
@@ -379,6 +394,7 @@ files:
|
|
379
394
|
- lib/appmap/handler/eval.rb
|
380
395
|
- lib/appmap/handler/function.rb
|
381
396
|
- lib/appmap/handler/net_http.rb
|
397
|
+
- lib/appmap/handler/rails/render_handler.rb
|
382
398
|
- lib/appmap/handler/rails/request_handler.rb
|
383
399
|
- lib/appmap/handler/rails/sql_handler.rb
|
384
400
|
- lib/appmap/handler/rails/template.rb
|
@@ -421,6 +437,7 @@ files:
|
|
421
437
|
- spec/fixtures/config/invalid_yaml_config.yml
|
422
438
|
- spec/fixtures/config/missing_path_or_gem.yml
|
423
439
|
- spec/fixtures/config/valid_config.yml
|
440
|
+
- spec/fixtures/database.yml
|
424
441
|
- spec/fixtures/depends/.gitignore
|
425
442
|
- spec/fixtures/depends/app/controllers/api/api_keys_controller.rb
|
426
443
|
- spec/fixtures/depends/app/controllers/organizations_controller.rb
|
@@ -463,18 +480,14 @@ files:
|
|
463
480
|
- spec/fixtures/hook/user_page_scenario.appmap.json
|
464
481
|
- spec/fixtures/rack_users_app/.dockerignore
|
465
482
|
- spec/fixtures/rack_users_app/.gitignore
|
466
|
-
- spec/fixtures/rack_users_app/Dockerfile
|
467
483
|
- spec/fixtures/rack_users_app/Gemfile
|
468
484
|
- spec/fixtures/rack_users_app/appmap.yml
|
469
485
|
- spec/fixtures/rack_users_app/config.ru
|
470
|
-
- spec/fixtures/rack_users_app/docker-compose.yml
|
471
486
|
- spec/fixtures/rack_users_app/lib/app.rb
|
472
487
|
- spec/fixtures/rails5_users_app/.dockerignore
|
473
488
|
- spec/fixtures/rails5_users_app/.gitignore
|
474
489
|
- spec/fixtures/rails5_users_app/.rspec
|
475
490
|
- spec/fixtures/rails5_users_app/.ruby-version
|
476
|
-
- spec/fixtures/rails5_users_app/Dockerfile
|
477
|
-
- spec/fixtures/rails5_users_app/Dockerfile.pg
|
478
491
|
- spec/fixtures/rails5_users_app/Gemfile
|
479
492
|
- spec/fixtures/rails5_users_app/Rakefile
|
480
493
|
- spec/fixtures/rails5_users_app/app/controllers/api/users_controller.rb
|
@@ -523,10 +536,8 @@ files:
|
|
523
536
|
- spec/fixtures/rails5_users_app/config/initializers/wrap_parameters.rb
|
524
537
|
- spec/fixtures/rails5_users_app/config/locales/en.yml
|
525
538
|
- spec/fixtures/rails5_users_app/config/routes.rb
|
526
|
-
- spec/fixtures/rails5_users_app/create_app
|
527
539
|
- spec/fixtures/rails5_users_app/db/migrate/20190728211408_create_users.rb
|
528
540
|
- spec/fixtures/rails5_users_app/db/schema.rb
|
529
|
-
- spec/fixtures/rails5_users_app/docker-compose.yml
|
530
541
|
- spec/fixtures/rails5_users_app/features/api_users.feature
|
531
542
|
- spec/fixtures/rails5_users_app/features/support/env.rb
|
532
543
|
- spec/fixtures/rails5_users_app/features/support/hooks.rb
|
@@ -543,9 +554,6 @@ files:
|
|
543
554
|
- spec/fixtures/rails6_users_app/.dockerignore
|
544
555
|
- spec/fixtures/rails6_users_app/.gitignore
|
545
556
|
- spec/fixtures/rails6_users_app/.rspec
|
546
|
-
- spec/fixtures/rails6_users_app/.ruby-version
|
547
|
-
- spec/fixtures/rails6_users_app/Dockerfile
|
548
|
-
- spec/fixtures/rails6_users_app/Dockerfile.pg
|
549
557
|
- spec/fixtures/rails6_users_app/Gemfile
|
550
558
|
- spec/fixtures/rails6_users_app/Rakefile
|
551
559
|
- spec/fixtures/rails6_users_app/app/controllers/api/users_controller.rb
|
@@ -594,10 +602,8 @@ files:
|
|
594
602
|
- spec/fixtures/rails6_users_app/config/initializers/wrap_parameters.rb
|
595
603
|
- spec/fixtures/rails6_users_app/config/locales/en.yml
|
596
604
|
- spec/fixtures/rails6_users_app/config/routes.rb
|
597
|
-
- spec/fixtures/rails6_users_app/create_app
|
598
605
|
- spec/fixtures/rails6_users_app/db/migrate/20190728211408_create_users.rb
|
599
606
|
- spec/fixtures/rails6_users_app/db/schema.rb
|
600
|
-
- spec/fixtures/rails6_users_app/docker-compose.yml
|
601
607
|
- spec/fixtures/rails6_users_app/features/api_users.feature
|
602
608
|
- spec/fixtures/rails6_users_app/features/support/env.rb
|
603
609
|
- spec/fixtures/rails6_users_app/features/support/hooks.rb
|
@@ -620,9 +626,6 @@ files:
|
|
620
626
|
- spec/fixtures/rails7_users_app/.gitattributes
|
621
627
|
- spec/fixtures/rails7_users_app/.gitignore
|
622
628
|
- spec/fixtures/rails7_users_app/.rspec
|
623
|
-
- spec/fixtures/rails7_users_app/.ruby-version
|
624
|
-
- spec/fixtures/rails7_users_app/Dockerfile
|
625
|
-
- spec/fixtures/rails7_users_app/Dockerfile.pg
|
626
629
|
- spec/fixtures/rails7_users_app/Gemfile
|
627
630
|
- spec/fixtures/rails7_users_app/README.md
|
628
631
|
- spec/fixtures/rails7_users_app/Rakefile
|
@@ -673,12 +676,10 @@ files:
|
|
673
676
|
- spec/fixtures/rails7_users_app/config/puma.rb
|
674
677
|
- spec/fixtures/rails7_users_app/config/routes.rb
|
675
678
|
- spec/fixtures/rails7_users_app/config/storage.yml
|
676
|
-
- spec/fixtures/rails7_users_app/create_app
|
677
679
|
- spec/fixtures/rails7_users_app/db/migrate/20220328093141_create_instances.rb
|
678
680
|
- spec/fixtures/rails7_users_app/db/migrate/20220328093154_create_instructors.rb
|
679
681
|
- spec/fixtures/rails7_users_app/db/schema.rb
|
680
682
|
- spec/fixtures/rails7_users_app/db/seeds.rb
|
681
|
-
- spec/fixtures/rails7_users_app/docker-compose.yml
|
682
683
|
- spec/fixtures/rails7_users_app/lib/assets/.keep
|
683
684
|
- spec/fixtures/rails7_users_app/lib/tasks/.keep
|
684
685
|
- spec/fixtures/rails7_users_app/log/.keep
|
data/Dockerfile.appmap
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
ARG GEM_VERSION
|
2
|
-
ARG RUBY_VERSION
|
3
|
-
|
4
|
-
FROM appmap:${GEM_VERSION} as appmap
|
5
|
-
|
6
|
-
FROM ruby:${RUBY_VERSION}
|
7
|
-
RUN apt-get update && apt-get install -y vim less
|
8
|
-
|
9
|
-
RUN mkdir /app
|
10
|
-
WORKDIR /app
|
11
|
-
|
12
|
-
RUN gem install -N bundler
|
13
|
-
|
14
|
-
COPY Gemfile .
|
15
|
-
|
16
|
-
RUN bundle
|
17
|
-
RUN bundle binstubs rack
|
18
|
-
|
19
|
-
COPY . .
|
20
|
-
|
21
|
-
COPY --from=appmap /pkg/appmap.gem /tmp/
|
22
|
-
RUN gem install /tmp/appmap.gem && \
|
23
|
-
bundle update --local appmap && \
|
24
|
-
bundle binstubs appmap --force
|
25
|
-
|
26
|
-
EXPOSE 9292
|
27
|
-
|
28
|
-
ENV GLI_DEBUG=true
|
29
|
-
|
30
|
-
ENTRYPOINT [ "./bin/appmap", "record", "-o", "tmp/appmap.json" ]
|
31
|
-
|
32
|
-
HEALTHCHECK --interval=1s --retries=10 CMD curl --fail http://localhost:9292/health || exit 1
|
@@ -1,29 +0,0 @@
|
|
1
|
-
ARG GEM_VERSION
|
2
|
-
ARG RUBY_VERSION
|
3
|
-
|
4
|
-
FROM appmap:${GEM_VERSION} as appmap
|
5
|
-
|
6
|
-
FROM ruby:${RUBY_VERSION}
|
7
|
-
RUN apt-get update && apt-get install -y vim less
|
8
|
-
RUN apt-get install -y postgresql-client
|
9
|
-
|
10
|
-
RUN mkdir /app
|
11
|
-
WORKDIR /app
|
12
|
-
|
13
|
-
RUN gem install -N bundler
|
14
|
-
|
15
|
-
COPY Gemfile .
|
16
|
-
|
17
|
-
RUN bundle
|
18
|
-
RUN bundle binstubs bundler rspec-core --force
|
19
|
-
|
20
|
-
COPY . .
|
21
|
-
|
22
|
-
COPY --from=appmap /pkg/appmap.gem /tmp/
|
23
|
-
RUN gem install /tmp/appmap.gem && \
|
24
|
-
bundle update --local appmap && \
|
25
|
-
bundle binstubs appmap --force
|
26
|
-
|
27
|
-
EXPOSE 3000
|
28
|
-
|
29
|
-
HEALTHCHECK --interval=1s --retries=10 CMD curl --fail http://localhost:3000/health || exit 1
|
@@ -1,18 +0,0 @@
|
|
1
|
-
default: &default
|
2
|
-
host: <%= ENV['PGHOST'] || 'pg' %>
|
3
|
-
port: <%= ENV['PGPORT'] || 5432 %>
|
4
|
-
user: postgres
|
5
|
-
adapter: postgresql
|
6
|
-
encoding: unicode
|
7
|
-
# For details on connection pooling, see Rails configuration guide
|
8
|
-
# http://guides.rubyonrails.org/configuring.html#database-pooling
|
9
|
-
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
10
|
-
|
11
|
-
development:
|
12
|
-
<<: *default
|
13
|
-
database: app_development
|
14
|
-
test:
|
15
|
-
<<: *default
|
16
|
-
database: app_test
|
17
|
-
production:
|
18
|
-
<<: *default
|
@@ -1,33 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
set -ex
|
3
|
-
|
4
|
-
# Just checking for a healthy container isn't enough, apparently. If
|
5
|
-
# we don't wait here, sometimes the database is inaccessible.
|
6
|
-
for i in {1..10}; do
|
7
|
-
psql -h pg -U postgres postgres -c 'select 1' >/dev/null 2>&1 && break
|
8
|
-
printf ' .'
|
9
|
-
sleep 1
|
10
|
-
done
|
11
|
-
echo
|
12
|
-
out="$(psql -h pg -U postgres postgres -c 'select 1' 2>&1)"
|
13
|
-
if [[ $? != 0 ]]; then
|
14
|
-
echo "Postgres didn't start in time:"
|
15
|
-
echo "$out"
|
16
|
-
exit 1
|
17
|
-
fi
|
18
|
-
|
19
|
-
# Required for migrations
|
20
|
-
export ORM_MODULE=sequel
|
21
|
-
|
22
|
-
set +e
|
23
|
-
psql -h pg -U postgres -c "drop database if exists app_development"
|
24
|
-
psql -h pg -U postgres -c "drop database if exists app_test"
|
25
|
-
set -e
|
26
|
-
|
27
|
-
psql -h pg -U postgres -c "create database app_development"
|
28
|
-
psql -h pg -U postgres -c "create database app_test"
|
29
|
-
|
30
|
-
env RAILS_ENV=development bundle exec rake -t db:migrate
|
31
|
-
env RAILS_ENV=test bundle exec rake -t db:migrate
|
32
|
-
|
33
|
-
echo "INSERT INTO users ( login ) VALUES ( 'admin' ) " | psql -h pg -U postgres app_development
|
@@ -1,31 +0,0 @@
|
|
1
|
-
version: "3"
|
2
|
-
services:
|
3
|
-
pg:
|
4
|
-
build:
|
5
|
-
context: .
|
6
|
-
dockerfile: Dockerfile.pg
|
7
|
-
ports:
|
8
|
-
- "5432"
|
9
|
-
environment:
|
10
|
-
POSTGRES_HOST_AUTH_METHOD: trust
|
11
|
-
|
12
|
-
app:
|
13
|
-
build:
|
14
|
-
context: .
|
15
|
-
dockerfile: Dockerfile
|
16
|
-
image: rails5-app:${RUBY_VERSION}
|
17
|
-
command:
|
18
|
-
[ "./bin/rails", "server", "-b", "0.0.0.0", "webrick" ]
|
19
|
-
environment:
|
20
|
-
RAILS_ENV:
|
21
|
-
ORM_MODULE:
|
22
|
-
PGHOST: pg
|
23
|
-
PGPORT: '5432'
|
24
|
-
DATABASE_URL: postgres://postgres@pg
|
25
|
-
APPMAP:
|
26
|
-
volumes:
|
27
|
-
- .:/src/app
|
28
|
-
ports:
|
29
|
-
- "3000"
|
30
|
-
links:
|
31
|
-
- pg:pg
|
@@ -1 +0,0 @@
|
|
1
|
-
2.6.2
|
@@ -1,44 +0,0 @@
|
|
1
|
-
ARG GEM_VERSION
|
2
|
-
ARG RUBY_VERSION
|
3
|
-
|
4
|
-
FROM appmap:${GEM_VERSION} as appmap
|
5
|
-
FROM ruby:${RUBY_VERSION}
|
6
|
-
|
7
|
-
SHELL ["/bin/bash", "-c"]
|
8
|
-
|
9
|
-
RUN apt-get update && apt-get install -y vim less
|
10
|
-
RUN apt-get install -y postgresql-client
|
11
|
-
|
12
|
-
RUN curl -fsSL https://fnm.vercel.app/install | bash \
|
13
|
-
&& source /root/.bashrc \
|
14
|
-
&& fnm install --lts \
|
15
|
-
&& echo 'fnm default $(fnm current)' >> ~/.bashrc \
|
16
|
-
&& ln -s $(which node) /usr/local/bin/ \
|
17
|
-
&& ln -s $(which npx) /usr/local/bin/ \
|
18
|
-
&& npm install -g yarn \
|
19
|
-
&& ln -s $(which yarn) /usr/local/bin/
|
20
|
-
|
21
|
-
RUN mkdir /app
|
22
|
-
WORKDIR /app
|
23
|
-
|
24
|
-
RUN gem install -N bundler
|
25
|
-
|
26
|
-
COPY package.json .
|
27
|
-
|
28
|
-
RUN yarn install
|
29
|
-
|
30
|
-
COPY Gemfile .
|
31
|
-
|
32
|
-
RUN bundle
|
33
|
-
RUN bundle binstubs bundler rspec-core --force
|
34
|
-
|
35
|
-
COPY . .
|
36
|
-
|
37
|
-
COPY --from=appmap /pkg/appmap.gem /tmp/
|
38
|
-
RUN gem install /tmp/appmap.gem && \
|
39
|
-
bundle update --local appmap && \
|
40
|
-
bundle binstubs appmap --force
|
41
|
-
|
42
|
-
EXPOSE 3000
|
43
|
-
|
44
|
-
HEALTHCHECK --interval=1s --retries=10 CMD curl --fail http://localhost:3000/health || exit 1
|
@@ -1,18 +0,0 @@
|
|
1
|
-
default: &default
|
2
|
-
host: <%= ENV['PGHOST'] || 'pg' %>
|
3
|
-
port: <%= ENV['PGPORT'] || 5432 %>
|
4
|
-
user: postgres
|
5
|
-
adapter: postgresql
|
6
|
-
encoding: unicode
|
7
|
-
# For details on connection pooling, see Rails configuration guide
|
8
|
-
# http://guides.rubyonrails.org/configuring.html#database-pooling
|
9
|
-
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
10
|
-
|
11
|
-
development:
|
12
|
-
<<: *default
|
13
|
-
database: app_development
|
14
|
-
test:
|
15
|
-
<<: *default
|
16
|
-
database: app_test
|
17
|
-
production:
|
18
|
-
<<: *default
|