Skip to content

Commit 001936d

Browse files
committed
Refactor DockerCompose to use context specific docker compose file
1 parent 4cfc9da commit 001936d

File tree

4 files changed

+19
-33
lines changed

4 files changed

+19
-33
lines changed

lib/matrixeval/ruby/docker_compose.rb

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,6 @@ module Matrixeval
66
module Ruby
77
class DockerCompose
88

9-
class << self
10-
def clean_containers
11-
system("docker compose -f .matrixeval/docker-compose.yml rm --all -f >> /dev/null 2>&1")
12-
end
13-
end
14-
159
attr_reader :context
1610

1711
def initialize(context)
@@ -23,30 +17,29 @@ def run(arguments)
2317

2418
system(
2519
<<~DOCKER_COMPOSE_COMMAND
26-
docker compose -f .matrixeval/docker-compose.yml \
20+
docker compose -f #{yaml_file} \
2721
run --rm \
28-
#{env} \
29-
#{gemfile_mount} \
30-
#{docker_compose_service_name} \
22+
#{context.docker_compose_service_name} \
3123
#{forward_arguments}
3224
DOCKER_COMPOSE_COMMAND
3325
)
26+
ensure
27+
turn_on_stty_opost
28+
clean_linked_containers
3429
end
3530

3631
private
3732

38-
def env
39-
context.env.map do |k, v|
40-
"-e #{k}='#{v}'"
41-
end.join(" ")
33+
def clean_linked_containers
34+
system("docker compose -f #{yaml_file} down >> /dev/null 2>&1")
4235
end
4336

44-
def gemfile_mount
45-
"-v ./.matrixeval/Gemfile.lock.#{context.id}:/app/Gemfile.lock"
37+
def yaml_file
38+
".matrixeval/docker-compose/#{context.id}.yml"
4639
end
4740

48-
def docker_compose_service_name
49-
context.docker_compose_service_name
41+
def turn_on_stty_opost
42+
system("stty opost")
5043
end
5144

5245
end

lib/matrixeval/ruby/runner.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ def start
4545
exit
4646
ensure
4747
turn_on_stty_opost
48-
DockerCompose.clean_containers
4948
end
5049

5150
private

test/matrixeval/ruby/docker_compose_test.rb

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,18 @@ def test_run
4141
]
4242
)
4343
docker_compose = Matrixeval::Ruby::DockerCompose.new(context)
44+
4445
expected_docker_compose_command = <<~COMMAND
45-
docker compose -f .matrixeval/docker-compose.yml \
46-
run --rm \
47-
-e RAILS_VERSION='6.0.0' \
48-
-e SIDEKIQ_VERSION='5.0.0' \
49-
-v ./.matrixeval/Gemfile.lock.ruby_3_0_rails_6_0_sidekiq_5_0:/app/Gemfile.lock \
50-
ruby_3_0 \
51-
rake test
46+
docker compose -f .matrixeval/docker-compose/ruby_3_0_rails_6_0_sidekiq_5_0.yml \
47+
run --rm ruby_3_0 rake test
5248
COMMAND
5349
docker_compose.expects(:system).with(expected_docker_compose_command)
54-
docker_compose.run(["rake", "test"])
55-
end
5650

57-
def test_clean_containers
58-
Matrixeval::Ruby::DockerCompose.expects(:system).with("docker compose -f .matrixeval/docker-compose.yml rm --all -f >> /dev/null 2>&1")
59-
Matrixeval::Ruby::DockerCompose.clean_containers
51+
docker_compose.expects(:system).with("stty opost")
52+
53+
docker_compose.expects(:system).with("docker compose -f .matrixeval/docker-compose/ruby_3_0_rails_6_0_sidekiq_5_0.yml down >> /dev/null 2>&1")
54+
55+
docker_compose.run(["rake", "test"])
6056
end
6157

6258
end

test/matrixeval/ruby/runner_test.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ def setup
1111
FileUtils.rm(dummy_gem_matrixeval_file_path) rescue nil
1212
FileUtils.rm(dummy_gem_working_dir.join(".gitignore")) rescue nil
1313
FileUtils.rm Dir.glob(dummy_gem_working_dir.join(".matrixeval/Gemfile.lock.*"))
14-
15-
Matrixeval::Ruby::DockerCompose.stubs(:clean_containers)
1614
end
1715

1816
def test_start_with_init

0 commit comments

Comments
 (0)