Skip to content

Commit 40ebcd1

Browse files
committed
Refactor Runner and fix its tests
1 parent 427c930 commit 40ebcd1

File tree

3 files changed

+56
-13
lines changed

3 files changed

+56
-13
lines changed

lib/matrixeval/ruby/runner.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ def run_all_contexts
6969
DockerCompose::File.create_all
7070
GemfileLocks.create
7171
Gitignore.update
72+
ExtraMountFiles.create
7273

7374
pull_all_images
7475

@@ -113,6 +114,7 @@ def run_a_specific_context
113114
DockerCompose::File.create_all
114115
GemfileLocks.create
115116
Gitignore.update
117+
ExtraMountFiles.create
116118

117119
context = Context.find_by_command_options!(command.context_options)
118120

lib/matrixeval/ruby/templates/matrixeval.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
version: 0.2
1+
version: 0.3
2+
project_name: REPLACE_ME
23
target: ruby
34
parallel_workers: number_of_processors
45
# commands:
56
# - ps
67
# - top
78
# - an_additional_command
9+
# mounts:
10+
# - /a/path/need/to/mount:/a/path/mount/to
811
matrix:
912
ruby:
10-
# mounts:
11-
# - /a/path/need/to/mount:/a/path/mount/to
1213
variants:
1314
- key: 2.7
1415
container:
@@ -23,8 +24,10 @@ matrix:
2324
# - key: jruby-9.3
2425
# container:
2526
# image: jruby:9.3
26-
# env:
27+
# env:
2728
# PATH: "/opt/jruby/bin:/app/bin:/bundle/bin:$PATH"
29+
# mounts:
30+
# - /a/path/need/to/mount:/a/path/mount/to
2831

2932
# rails:
3033
# variants:

test/matrixeval/ruby/runner_test.rb

Lines changed: 47 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,33 @@ def test_start_with_init
2424
def test_start_first_time
2525
FileUtils.rm(dummy_gem_matrixeval_file_path) rescue nil
2626
Matrixeval::Ruby::DockerCompose.any_instance.expects(:system).with(<<~COMMAND
27-
docker compose -f .matrixeval/docker-compose.yml \
28-
run --rm \
29-
\
30-
-v ./.matrixeval/Gemfile.lock.ruby_3_0:/app/Gemfile.lock \
27+
docker --log-level error compose \
28+
-f .matrixeval/docker-compose/ruby_3_0.yml \
29+
-p matrixeval-replace_me-ruby_3_0 \
30+
run --rm --no-TTY \
3131
ruby_3_0 \
3232
rake test
3333
COMMAND
3434
)
3535

36+
Matrixeval::Ruby::DockerCompose.any_instance.expects(:system).with(<<~COMMAND.strip
37+
docker --log-level error compose \
38+
-f .matrixeval/docker-compose/ruby_3_0.yml \
39+
-p matrixeval-replace_me-ruby_3_0 \
40+
stop >> /dev/null 2>&1
41+
COMMAND
42+
)
43+
44+
Matrixeval::Ruby::DockerCompose.any_instance.expects(:system).with(<<~COMMAND.strip
45+
docker --log-level error compose \
46+
-f .matrixeval/docker-compose/ruby_3_0.yml \
47+
-p matrixeval-replace_me-ruby_3_0 \
48+
rm -v -f >> /dev/null 2>&1
49+
COMMAND
50+
)
51+
52+
Matrixeval::Ruby::DockerCompose.any_instance.expects(:system).with("stty opost")
53+
3654
Matrixeval::Ruby::Runner.start(["init"])
3755
Matrixeval::Ruby::Runner.start(["--ruby", "3.0", "rake", "test"])
3856
end
@@ -41,6 +59,7 @@ def test_start_with_existing_config_file
4159
File.open(dummy_gem_matrixeval_file_path, 'w+') do |file|
4260
file.puts(<<~MATRIXEVAL_YAML
4361
version: 0.1
62+
project_name: sample
4463
target: ruby
4564
parallel_workers: 1
4665
matrix:
@@ -76,15 +95,34 @@ def test_start_with_existing_config_file
7695
end
7796

7897
Matrixeval::Ruby::DockerCompose.any_instance.expects(:system).with(<<~COMMAND
79-
docker compose -f .matrixeval/docker-compose.yml \
80-
run --rm \
81-
-e RAILS_VERSION='6.0.0' \
82-
-e SIDEKIQ_VERSION='5.0.0' \
83-
-v ./.matrixeval/Gemfile.lock.ruby_3_0_rails_6_0_sidekiq_5_0:/app/Gemfile.lock \
98+
docker --log-level error compose \
99+
-f .matrixeval/docker-compose/ruby_3_0_rails_6_0_sidekiq_5_0.yml \
100+
-p matrixeval-sample-ruby_3_0_rails_6_0_sidekiq_5_0 \
101+
run --rm --no-TTY \
84102
ruby_3_0 \
85103
rake test
86104
COMMAND
87105
)
106+
107+
Matrixeval::Ruby::DockerCompose.any_instance.expects(:system).with(<<~COMMAND.strip
108+
docker --log-level error compose \
109+
-f .matrixeval/docker-compose/ruby_3_0_rails_6_0_sidekiq_5_0.yml \
110+
-p matrixeval-sample-ruby_3_0_rails_6_0_sidekiq_5_0 \
111+
stop >> /dev/null 2>&1
112+
COMMAND
113+
)
114+
115+
Matrixeval::Ruby::DockerCompose.any_instance.expects(:system).with(<<~COMMAND.strip
116+
docker --log-level error compose \
117+
-f .matrixeval/docker-compose/ruby_3_0_rails_6_0_sidekiq_5_0.yml \
118+
-p matrixeval-sample-ruby_3_0_rails_6_0_sidekiq_5_0 \
119+
rm -v -f >> /dev/null 2>&1
120+
COMMAND
121+
)
122+
123+
Matrixeval::Ruby::DockerCompose.any_instance.expects(:system).with("stty opost")
124+
125+
88126
Matrixeval::Ruby::Runner.start(["--rails", "6.0", "--sidekiq", "5.0", "rake", "test"])
89127
end
90128

0 commit comments

Comments
 (0)