Skip to content

Commit 2a307e4

Browse files
authored
Merge pull request #599 from rails/rm-add-devcontainer
Fix the devcontainer configuration
2 parents 4378a21 + d870557 commit 2a307e4

File tree

4 files changed

+39
-11
lines changed

4 files changed

+39
-11
lines changed

.devcontainer/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FROM ghcr.io/rails/devcontainer/images/ruby:3.3.5

.devcontainer/.devcontainer.json renamed to .devcontainer/devcontainer.json

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,19 @@
33
{
44
"name": "solid_queue",
55
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6-
"image": "ghcr.io/rails/devcontainer/images/ruby:3.3.5",
6+
"build": {
7+
"dockerfile": "Dockerfile"
8+
},
79
// Features to add to the dev container. More info: https://containers.dev/features.
810
"features": {
11+
"ghcr.io/devcontainers/features/docker-in-docker": {},
912
"ghcr.io/devcontainers/features/github-cli:1": {
1013
"version": "latest"
11-
}
14+
},
15+
"ghcr.io/rails/devcontainer/features/postgres-client": {
16+
"version": "15"
17+
},
18+
"ghcr.io/rails/devcontainer/features/mysql-client": {}
1219
}
1320
// Use 'forwardPorts' to make a list of ports inside the container available locally.
1421
// "forwardPorts": [],
@@ -18,4 +25,4 @@
1825
// "customizations": {},
1926
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
2027
// "remoteUser": "root"
21-
}
28+
}

Rakefile

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,36 @@ load "rails/tasks/engine.rake"
88
load "rails/tasks/statistics.rake"
99

1010
require "bundler/gem_tasks"
11+
require "rake/tasklib"
1112

12-
def databases
13-
%w[ mysql postgres sqlite ]
14-
end
13+
class TestHelpers < Rake::TaskLib
14+
def initialize(databases)
15+
@databases = databases
16+
define
17+
end
1518

16-
task :test do
17-
databases.each do |database|
19+
def define
20+
desc "Run tests for all databases (mysql, postgres, sqlite)"
21+
task :test do
22+
@databases.each { |database| run_test_for_database(database) }
23+
end
24+
25+
namespace :test do
26+
@databases.each do |database|
27+
desc "Run tests for #{database} database"
28+
task database do
29+
run_test_for_database(database)
30+
end
31+
end
32+
end
33+
end
34+
35+
private
36+
37+
def run_test_for_database(database)
1838
sh("TARGET_DB=#{database} bin/setup")
1939
sh("TARGET_DB=#{database} bin/rails test")
2040
end
2141
end
42+
43+
TestHelpers.new(%w[ mysql postgres sqlite ])

bin/setup

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,4 @@ bundle
1515

1616
echo "Creating databases..."
1717

18-
rails db:reset TARGET_DB=sqlite
19-
rails db:reset TARGET_DB=mysql
20-
rails db:reset TARGET_DB=postgres
18+
rails db:reset

0 commit comments

Comments
 (0)