modulorails 0.2.0 → 0.4.0
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/.dockerignore +14 -0
- data/.gitignore +3 -0
- data/.travis.yml +23 -4
- data/Appraisals +18 -0
- data/CHANGELOG.md +37 -0
- data/Dockerfile.ruby25 +34 -0
- data/Dockerfile.ruby26 +28 -0
- data/Dockerfile.ruby27 +25 -0
- data/Dockerfile.ruby30 +25 -0
- data/Dockerfile.ruby31 +25 -0
- data/Gemfile.lock +61 -54
- data/README.md +16 -4
- data/Rakefile +1 -1
- data/docker-compose.yml +37 -0
- data/entrypoints/appraisal_test.sh +7 -0
- data/gemfiles/rails_52.gemfile +9 -0
- data/gemfiles/rails_60.gemfile +9 -0
- data/gemfiles/rails_61.gemfile +9 -0
- data/gemfiles/rails_70.gemfile +9 -0
- data/lib/generators/modulorails/docker/docker_generator.rb +19 -0
- data/lib/generators/modulorails/docker/templates/Dockerfile.prod.tt +57 -0
- data/lib/generators/modulorails/docker/templates/Dockerfile.tt +26 -0
- data/lib/generators/modulorails/docker/templates/config/database.yml.tt +32 -0
- data/lib/generators/modulorails/docker/templates/docker-compose.prod.yml.tt +50 -0
- data/lib/generators/modulorails/docker/templates/docker-compose.yml.tt +71 -0
- data/lib/generators/modulorails/docker/templates/entrypoints/docker-entrypoint.sh.tt +20 -0
- data/lib/generators/modulorails/docker/templates/entrypoints/webpack-entrypoint.sh.tt +7 -0
- data/lib/generators/modulorails/gitlabci/gitlabci_generator.rb +34 -0
- data/lib/generators/modulorails/gitlabci/templates/.gitlab-ci.yml.tt +118 -0
- data/lib/generators/modulorails/gitlabci/templates/.modulorails-gitlab-ci +6 -0
- data/lib/generators/modulorails/gitlabci/templates/config/database-ci.yml.tt +8 -0
- data/lib/generators/modulorails/healthcheck/health_check_generator.rb +41 -0
- data/lib/generators/modulorails/healthcheck/templates/.modulorails-health_check +6 -0
- data/lib/generators/modulorails/healthcheck/templates/config/initializers/health_check.rb.tt +100 -0
- data/lib/generators/modulorails/self_update/self_update_generator.rb +32 -0
- data/lib/modulorails/configuration.rb +8 -2
- data/lib/modulorails/data.rb +23 -3
- data/lib/modulorails/railtie.rb +18 -3
- data/lib/modulorails/validators/database_configuration.rb +1 -1
- data/lib/modulorails/version.rb +1 -1
- data/lib/modulorails.rb +34 -21
- data/modulorails.gemspec +2 -0
- metadata +69 -17
- data/lib/generators/gitlabci_generator.rb +0 -132
- data/lib/generators/templates/.gitlab-ci.yml +0 -72
- data/lib/generators/templates/.modulorails-gitlab-ci +0 -3
- data/lib/generators/templates/config/database-ci.yml +0 -7
- data/lib/modulorails/updater.rb +0 -42
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f695c4454203bb2d22353b7cff523da2315c7ce5472300208f1774d6aed2be5a
|
|
4
|
+
data.tar.gz: f02062f1a5878154caa982fbf70dd5d584cdd1b07a90f5614aa4e01d27b79b20
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 93943d5cd4726cce846e10c09149ff39b19adadbdf823a3ffc4032e524184ebd1fd50a83be07286ea50938062995df3a6166edd206461efeb400b85e00101d31
|
|
7
|
+
data.tar.gz: 92b4689741e9468f395656200ff35096553e332e84958892adaedccfb6b14fb674f01078ae3a8588d104838d9e080422de7ae414224add37ed0c9a533aaf0508
|
data/.dockerignore
ADDED
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
language: ruby
|
|
3
3
|
cache: bundler
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
- 2.
|
|
7
|
-
- 2.
|
|
4
|
+
|
|
5
|
+
ruby:
|
|
6
|
+
- '2.5'
|
|
7
|
+
- '2.6'
|
|
8
|
+
- '2.7'
|
|
9
|
+
- '3.0'
|
|
10
|
+
- '3.1'
|
|
11
|
+
|
|
8
12
|
before_install:
|
|
9
13
|
- gem install bundler -v 2.1.4
|
|
14
|
+
|
|
15
|
+
gemfile:
|
|
16
|
+
- gemfiles/rails_52.gemfile
|
|
17
|
+
- gemfiles/rails_60.gemfile
|
|
18
|
+
- gemfiles/rails_61.gemfile
|
|
19
|
+
- gemfiles/rails_70.gemfile
|
|
20
|
+
|
|
21
|
+
matrix:
|
|
22
|
+
exclude:
|
|
23
|
+
- gemfile: gemfiles/rails_70.gemfile
|
|
24
|
+
ruby: 2.5
|
|
25
|
+
- gemfile: gemfiles/rails_70.gemfile
|
|
26
|
+
ruby: 2.6
|
|
27
|
+
|
|
28
|
+
script: bundle exec rake spec
|
data/Appraisals
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
appraise "rails-52" do
|
|
2
|
+
gem 'rails', '~> 5.2', '>= 5.2.6'
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
appraise "rails-60" do
|
|
6
|
+
gem 'rails', '~> 6.0', '>= 6.0.4.4'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
appraise "rails-61" do
|
|
10
|
+
gem 'rails', '~> 6.1', '>= 6.1.4.4'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Rails 7 requires at least Ruby 2.7
|
|
14
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.7')
|
|
15
|
+
appraise "rails-70" do
|
|
16
|
+
gem 'rails', '~> 7.0'
|
|
17
|
+
end
|
|
18
|
+
end
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
This file is used to list changes made in each version of the gem.
|
|
4
4
|
|
|
5
|
+
# 0.4.0
|
|
6
|
+
|
|
7
|
+
Fixes, updates and health_check release.
|
|
8
|
+
|
|
9
|
+
- Update generators for Docker and Gitlab CI.
|
|
10
|
+
- Move all generators under the `modulorails` namespace.
|
|
11
|
+
- Add dependency to `health_check` gem.
|
|
12
|
+
- Fix error on database configuration validator when no database.yml exists.
|
|
13
|
+
- Rescue if httparty can't post to configuration.endpoint.
|
|
14
|
+
- Add dockerfiles to test on many Ruby versions.
|
|
15
|
+
- Add appraisal to test on many Rails versions.
|
|
16
|
+
|
|
17
|
+
# 0.3.0
|
|
18
|
+
|
|
19
|
+
Docker release.
|
|
20
|
+
|
|
21
|
+
- Add generator for Docker.
|
|
22
|
+
- Use templates for Gitlabci generator.
|
|
23
|
+
|
|
24
|
+
# 0.2.3
|
|
25
|
+
|
|
26
|
+
Gitlab-ci generator.
|
|
27
|
+
|
|
28
|
+
- Fixes the Ruby version put in the generated `.gitlab-ci.yml`.
|
|
29
|
+
|
|
30
|
+
# 0.2.2
|
|
31
|
+
|
|
32
|
+
Auto-update fixes.
|
|
33
|
+
|
|
34
|
+
- Run `bundle install` to update the `Gemfile.lock` on auto-update.
|
|
35
|
+
|
|
36
|
+
# 0.2.1
|
|
37
|
+
|
|
38
|
+
Minor fixes.
|
|
39
|
+
|
|
40
|
+
- Fixes some errors occuring on a project where database can not be accessed.
|
|
41
|
+
|
|
5
42
|
# 0.2.0
|
|
6
43
|
|
|
7
44
|
Auto-update release.
|
data/Dockerfile.ruby25
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#
|
|
2
|
+
# BUILD IMAGE
|
|
3
|
+
#
|
|
4
|
+
FROM ruby:2.5-alpine
|
|
5
|
+
|
|
6
|
+
WORKDIR /app
|
|
7
|
+
|
|
8
|
+
RUN apk add --update --no-cache \
|
|
9
|
+
alpine-sdk \
|
|
10
|
+
tzdata
|
|
11
|
+
|
|
12
|
+
RUN gem install bundler
|
|
13
|
+
|
|
14
|
+
# Your RubyGems version (3.0.3)) has a bug that prevents `required_ruby_version` from working for
|
|
15
|
+
# Bundler. Any scripts that use `gem install bundler` will break as soon as Bundler drops support
|
|
16
|
+
# for your Ruby version. Please upgrade RubyGems to avoid future breakage and silence this warning
|
|
17
|
+
# by running `gem update --system 3.2.3`
|
|
18
|
+
RUN gem update --system 3.2.3
|
|
19
|
+
|
|
20
|
+
COPY . .
|
|
21
|
+
|
|
22
|
+
RUN bundle config set specific_platform true
|
|
23
|
+
|
|
24
|
+
# Ensure the use of a Gemfile working with Ruby 2.5
|
|
25
|
+
RUN sed -e 's/"..\/"/".\/"/' gemfiles/rails_52.gemfile > Gemfile
|
|
26
|
+
|
|
27
|
+
# Install the basic dependencies
|
|
28
|
+
RUN bundle install
|
|
29
|
+
|
|
30
|
+
# Install dependencies for all supported Rails versions
|
|
31
|
+
RUN bundle exec appraisal install
|
|
32
|
+
|
|
33
|
+
# Run the tests
|
|
34
|
+
CMD ['./entrypoints/appraisal_test.sh']
|
data/Dockerfile.ruby26
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#
|
|
2
|
+
# BUILD IMAGE
|
|
3
|
+
#
|
|
4
|
+
FROM ruby:2.6-alpine
|
|
5
|
+
|
|
6
|
+
WORKDIR /app
|
|
7
|
+
|
|
8
|
+
RUN apk add --update --no-cache \
|
|
9
|
+
alpine-sdk \
|
|
10
|
+
tzdata
|
|
11
|
+
|
|
12
|
+
RUN gem install bundler
|
|
13
|
+
|
|
14
|
+
COPY . .
|
|
15
|
+
|
|
16
|
+
RUN bundle config set specific_platform true
|
|
17
|
+
|
|
18
|
+
# Ensure the use of a Gemfile working with Ruby 2.6
|
|
19
|
+
RUN sed -e 's/"..\/"/".\/"/' gemfiles/rails_52.gemfile > Gemfile
|
|
20
|
+
|
|
21
|
+
# Install the basic dependencies
|
|
22
|
+
RUN bundle install
|
|
23
|
+
|
|
24
|
+
# Install dependencies for all supported Rails versions
|
|
25
|
+
RUN bundle exec appraisal install
|
|
26
|
+
|
|
27
|
+
# Run the tests
|
|
28
|
+
CMD ['./entrypoints/appraisal_test.sh']
|
data/Dockerfile.ruby27
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#
|
|
2
|
+
# BUILD IMAGE
|
|
3
|
+
#
|
|
4
|
+
FROM ruby:2.7-alpine
|
|
5
|
+
|
|
6
|
+
WORKDIR /app
|
|
7
|
+
|
|
8
|
+
RUN apk add --update --no-cache \
|
|
9
|
+
alpine-sdk \
|
|
10
|
+
tzdata
|
|
11
|
+
|
|
12
|
+
RUN gem install bundler
|
|
13
|
+
|
|
14
|
+
COPY . .
|
|
15
|
+
|
|
16
|
+
RUN bundle config set specific_platform true
|
|
17
|
+
|
|
18
|
+
# Install the basic dependencies
|
|
19
|
+
RUN bundle install
|
|
20
|
+
|
|
21
|
+
# Install dependencies for all supported Rails versions
|
|
22
|
+
RUN bundle exec appraisal install
|
|
23
|
+
|
|
24
|
+
# Run the tests
|
|
25
|
+
CMD ['./entrypoints/appraisal_test.sh']
|
data/Dockerfile.ruby30
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#
|
|
2
|
+
# BUILD IMAGE
|
|
3
|
+
#
|
|
4
|
+
FROM ruby:3.0-alpine
|
|
5
|
+
|
|
6
|
+
WORKDIR /app
|
|
7
|
+
|
|
8
|
+
RUN apk add --update --no-cache \
|
|
9
|
+
alpine-sdk \
|
|
10
|
+
tzdata
|
|
11
|
+
|
|
12
|
+
RUN gem install bundler
|
|
13
|
+
|
|
14
|
+
COPY . .
|
|
15
|
+
|
|
16
|
+
RUN bundle config set specific_platform true
|
|
17
|
+
|
|
18
|
+
# Install the basic dependencies
|
|
19
|
+
RUN bundle install
|
|
20
|
+
|
|
21
|
+
# Install dependencies for all supported Rails versions
|
|
22
|
+
RUN bundle exec appraisal install
|
|
23
|
+
|
|
24
|
+
# Run the tests
|
|
25
|
+
CMD ['./entrypoints/appraisal_test.sh']
|
data/Dockerfile.ruby31
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#
|
|
2
|
+
# BUILD IMAGE
|
|
3
|
+
#
|
|
4
|
+
FROM ruby:3.1-alpine
|
|
5
|
+
|
|
6
|
+
WORKDIR /app
|
|
7
|
+
|
|
8
|
+
RUN apk add --update --no-cache \
|
|
9
|
+
alpine-sdk \
|
|
10
|
+
tzdata
|
|
11
|
+
|
|
12
|
+
RUN gem install bundler
|
|
13
|
+
|
|
14
|
+
COPY . .
|
|
15
|
+
|
|
16
|
+
RUN bundle config set specific_platform true
|
|
17
|
+
|
|
18
|
+
# Install the basic dependencies
|
|
19
|
+
RUN bundle install
|
|
20
|
+
|
|
21
|
+
# Install dependencies for all supported Rails versions
|
|
22
|
+
RUN bundle exec appraisal install
|
|
23
|
+
|
|
24
|
+
# Run the tests
|
|
25
|
+
CMD ['./entrypoints/appraisal_test.sh']
|
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
modulorails (0.
|
|
4
|
+
modulorails (0.4.0)
|
|
5
5
|
git (~> 1.7, >= 1.7.0)
|
|
6
|
+
health_check (~> 3.1)
|
|
6
7
|
httparty
|
|
7
8
|
i18n
|
|
8
9
|
railties (>= 4.2.0)
|
|
@@ -10,97 +11,103 @@ PATH
|
|
|
10
11
|
GEM
|
|
11
12
|
remote: https://rubygems.org/
|
|
12
13
|
specs:
|
|
13
|
-
actionpack (
|
|
14
|
-
actionview (=
|
|
15
|
-
activesupport (=
|
|
16
|
-
rack (~> 2.0, >= 2.0
|
|
14
|
+
actionpack (7.0.0)
|
|
15
|
+
actionview (= 7.0.0)
|
|
16
|
+
activesupport (= 7.0.0)
|
|
17
|
+
rack (~> 2.0, >= 2.2.0)
|
|
17
18
|
rack-test (>= 0.6.3)
|
|
18
19
|
rails-dom-testing (~> 2.0)
|
|
19
20
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
20
|
-
actionview (
|
|
21
|
-
activesupport (=
|
|
21
|
+
actionview (7.0.0)
|
|
22
|
+
activesupport (= 7.0.0)
|
|
22
23
|
builder (~> 3.1)
|
|
23
24
|
erubi (~> 1.4)
|
|
24
25
|
rails-dom-testing (~> 2.0)
|
|
25
26
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
26
|
-
activemodel (
|
|
27
|
-
activesupport (=
|
|
28
|
-
activerecord (
|
|
29
|
-
activemodel (=
|
|
30
|
-
activesupport (=
|
|
31
|
-
activesupport (
|
|
27
|
+
activemodel (7.0.0)
|
|
28
|
+
activesupport (= 7.0.0)
|
|
29
|
+
activerecord (7.0.0)
|
|
30
|
+
activemodel (= 7.0.0)
|
|
31
|
+
activesupport (= 7.0.0)
|
|
32
|
+
activesupport (7.0.0)
|
|
32
33
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
33
|
-
i18n (>=
|
|
34
|
-
minitest (
|
|
35
|
-
tzinfo (~>
|
|
36
|
-
|
|
34
|
+
i18n (>= 1.6, < 2)
|
|
35
|
+
minitest (>= 5.1)
|
|
36
|
+
tzinfo (~> 2.0)
|
|
37
|
+
appraisal (2.4.1)
|
|
38
|
+
bundler
|
|
39
|
+
rake
|
|
40
|
+
thor (>= 0.14.0)
|
|
37
41
|
builder (3.2.4)
|
|
38
|
-
concurrent-ruby (1.1.
|
|
42
|
+
concurrent-ruby (1.1.9)
|
|
39
43
|
crass (1.0.6)
|
|
40
|
-
diff-lcs (1.
|
|
41
|
-
erubi (1.
|
|
42
|
-
git (1.
|
|
44
|
+
diff-lcs (1.5.0)
|
|
45
|
+
erubi (1.10.0)
|
|
46
|
+
git (1.10.2)
|
|
43
47
|
rchardet (~> 1.8)
|
|
44
|
-
|
|
48
|
+
health_check (3.1.0)
|
|
49
|
+
railties (>= 5.0)
|
|
50
|
+
httparty (0.20.0)
|
|
45
51
|
mime-types (~> 3.0)
|
|
46
52
|
multi_xml (>= 0.5.2)
|
|
47
|
-
i18n (1.8.
|
|
53
|
+
i18n (1.8.11)
|
|
48
54
|
concurrent-ruby (~> 1.0)
|
|
49
|
-
loofah (2.
|
|
55
|
+
loofah (2.13.0)
|
|
50
56
|
crass (~> 1.0.2)
|
|
51
57
|
nokogiri (>= 1.5.9)
|
|
52
58
|
method_source (1.0.0)
|
|
53
|
-
mime-types (3.
|
|
59
|
+
mime-types (3.4.1)
|
|
54
60
|
mime-types-data (~> 3.2015)
|
|
55
|
-
mime-types-data (3.
|
|
56
|
-
|
|
57
|
-
minitest (5.14.1)
|
|
61
|
+
mime-types-data (3.2022.0105)
|
|
62
|
+
minitest (5.15.0)
|
|
58
63
|
multi_xml (0.6.0)
|
|
59
|
-
nokogiri (1.
|
|
60
|
-
|
|
64
|
+
nokogiri (1.13.1-aarch64-linux)
|
|
65
|
+
racc (~> 1.4)
|
|
66
|
+
racc (1.6.0)
|
|
61
67
|
rack (2.2.3)
|
|
62
68
|
rack-test (1.1.0)
|
|
63
69
|
rack (>= 1.0, < 3)
|
|
64
70
|
rails-dom-testing (2.0.3)
|
|
65
71
|
activesupport (>= 4.2.0)
|
|
66
72
|
nokogiri (>= 1.6)
|
|
67
|
-
rails-html-sanitizer (1.
|
|
73
|
+
rails-html-sanitizer (1.4.2)
|
|
68
74
|
loofah (~> 2.3)
|
|
69
|
-
railties (
|
|
70
|
-
actionpack (=
|
|
71
|
-
activesupport (=
|
|
75
|
+
railties (7.0.0)
|
|
76
|
+
actionpack (= 7.0.0)
|
|
77
|
+
activesupport (= 7.0.0)
|
|
72
78
|
method_source
|
|
73
|
-
rake (>=
|
|
74
|
-
thor (
|
|
79
|
+
rake (>= 12.2)
|
|
80
|
+
thor (~> 1.0)
|
|
81
|
+
zeitwerk (~> 2.5)
|
|
75
82
|
rake (12.3.3)
|
|
76
83
|
rchardet (1.8.0)
|
|
77
|
-
rspec (3.
|
|
78
|
-
rspec-core (~> 3.
|
|
79
|
-
rspec-expectations (~> 3.
|
|
80
|
-
rspec-mocks (~> 3.
|
|
81
|
-
rspec-core (3.
|
|
82
|
-
rspec-support (~> 3.
|
|
83
|
-
rspec-expectations (3.
|
|
84
|
+
rspec (3.10.0)
|
|
85
|
+
rspec-core (~> 3.10.0)
|
|
86
|
+
rspec-expectations (~> 3.10.0)
|
|
87
|
+
rspec-mocks (~> 3.10.0)
|
|
88
|
+
rspec-core (3.10.1)
|
|
89
|
+
rspec-support (~> 3.10.0)
|
|
90
|
+
rspec-expectations (3.10.1)
|
|
84
91
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
85
|
-
rspec-support (~> 3.
|
|
86
|
-
rspec-mocks (3.
|
|
92
|
+
rspec-support (~> 3.10.0)
|
|
93
|
+
rspec-mocks (3.10.2)
|
|
87
94
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
88
|
-
rspec-support (~> 3.
|
|
89
|
-
rspec-support (3.
|
|
90
|
-
thor (1.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
zeitwerk (2.4.0)
|
|
95
|
+
rspec-support (~> 3.10.0)
|
|
96
|
+
rspec-support (3.10.3)
|
|
97
|
+
thor (1.2.1)
|
|
98
|
+
tzinfo (2.0.4)
|
|
99
|
+
concurrent-ruby (~> 1.0)
|
|
100
|
+
zeitwerk (2.5.3)
|
|
95
101
|
|
|
96
102
|
PLATFORMS
|
|
97
|
-
|
|
103
|
+
aarch64-linux
|
|
98
104
|
|
|
99
105
|
DEPENDENCIES
|
|
100
106
|
activerecord (>= 4.2.0)
|
|
107
|
+
appraisal
|
|
101
108
|
modulorails!
|
|
102
109
|
rake (~> 12.0)
|
|
103
110
|
rspec (~> 3.0)
|
|
104
111
|
|
|
105
112
|
BUNDLED WITH
|
|
106
|
-
2.
|
|
113
|
+
2.3.3
|
data/README.md
CHANGED
|
@@ -10,7 +10,7 @@ provides templates for the common configurations and defines common dependencies
|
|
|
10
10
|
Add this line to your application's Gemfile:
|
|
11
11
|
|
|
12
12
|
```ruby
|
|
13
|
-
gem 'modulorails'
|
|
13
|
+
gem 'modulorails'
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
And then execute:
|
|
@@ -33,9 +33,21 @@ end
|
|
|
33
33
|
|
|
34
34
|
## Development
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
There are tests in `spec`. To run tests:
|
|
37
|
+
- Build Docker images using `docker compose build`.
|
|
38
|
+
- You can run tests on all supported Ruby versions using `docker compose up`.
|
|
39
|
+
- Or you can run test on a specific Ruby version using one of the following commands:
|
|
40
|
+
- Ruby 2.5: `docker compose run ruby25`
|
|
41
|
+
- Ruby 2.6: `docker compose run ruby26`
|
|
42
|
+
- Ruby 2.7: `docker compose run ruby27`
|
|
43
|
+
- Ruby 3.0: `docker compose run ruby30`
|
|
44
|
+
- Ruby 3.1: `docker compose run ruby31`
|
|
45
|
+
|
|
46
|
+
[Appraisal](https://github.com/thoughtbot/appraisal) is used to test the gem against many supported Rails versions:
|
|
47
|
+
- Rails 5.2, 6.0 and 6.1 on Ruby 2.5 and 2.6.
|
|
48
|
+
- Rails 5.2, 6.0, 6.1 and 7.0 on Ruby 2.7, 3.0 and 3.1.
|
|
49
|
+
|
|
50
|
+
Travis CI is configured to automatically run tests in all supported Ruby versions and dependency sets after each push.
|
|
39
51
|
|
|
40
52
|
## Contributing
|
|
41
53
|
|
data/Rakefile
CHANGED
data/docker-compose.yml
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
version: '3.7'
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
ruby25:
|
|
5
|
+
image: modulotechgroup/modulorails:testruby25
|
|
6
|
+
build:
|
|
7
|
+
context: .
|
|
8
|
+
dockerfile: Dockerfile.ruby25
|
|
9
|
+
command: ./entrypoints/appraisal_test.sh
|
|
10
|
+
|
|
11
|
+
ruby26:
|
|
12
|
+
image: modulotechgroup/modulorails:testruby26
|
|
13
|
+
build:
|
|
14
|
+
context: .
|
|
15
|
+
dockerfile: Dockerfile.ruby26
|
|
16
|
+
command: ./entrypoints/appraisal_test.sh
|
|
17
|
+
|
|
18
|
+
ruby27:
|
|
19
|
+
image: modulotechgroup/modulorails:testruby27
|
|
20
|
+
build:
|
|
21
|
+
context: .
|
|
22
|
+
dockerfile: Dockerfile.ruby27
|
|
23
|
+
command: ./entrypoints/appraisal_test.sh
|
|
24
|
+
|
|
25
|
+
ruby30:
|
|
26
|
+
image: modulotechgroup/modulorails:testruby30
|
|
27
|
+
build:
|
|
28
|
+
context: .
|
|
29
|
+
dockerfile: Dockerfile.ruby30
|
|
30
|
+
command: ./entrypoints/appraisal_test.sh
|
|
31
|
+
|
|
32
|
+
ruby31:
|
|
33
|
+
image: modulotechgroup/modulorails:testruby31
|
|
34
|
+
build:
|
|
35
|
+
context: .
|
|
36
|
+
dockerfile: Dockerfile.ruby31
|
|
37
|
+
command: ./entrypoints/appraisal_test.sh
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails/generators'
|
|
4
|
+
|
|
5
|
+
class Modulorails::DockerGenerator < Rails::Generators::Base
|
|
6
|
+
source_root File.expand_path('templates', __dir__)
|
|
7
|
+
desc 'This generator creates Dockerfiles for an app'
|
|
8
|
+
|
|
9
|
+
def create_config_file
|
|
10
|
+
template 'Dockerfile'
|
|
11
|
+
template 'Dockerfile.prod'
|
|
12
|
+
template 'docker-compose.yml'
|
|
13
|
+
template 'docker-compose.prod.yml'
|
|
14
|
+
template 'entrypoints/docker-entrypoint.sh'
|
|
15
|
+
template 'config/database.yml'
|
|
16
|
+
rescue StandardError => e
|
|
17
|
+
$stderr.puts("[Modulorails] Error: cannot generate Docker configuration: #{e.message}")
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# BUILD IMAGE
|
|
2
|
+
FROM ruby:<%= Modulorails.data.ruby_version %>-alpine as builder
|
|
3
|
+
|
|
4
|
+
ENV RAILS_ENV=production
|
|
5
|
+
WORKDIR /app
|
|
6
|
+
|
|
7
|
+
RUN apk add --update --no-cache \
|
|
8
|
+
alpine-sdk \
|
|
9
|
+
nodejs \
|
|
10
|
+
tzdata \
|
|
11
|
+
yarn \
|
|
12
|
+
shared-mime-info \
|
|
13
|
+
<%- adapter = Modulorails.data.adapter -%>
|
|
14
|
+
<%- if adapter =~ /mysql/ -%>
|
|
15
|
+
mysql-dev
|
|
16
|
+
<%- else -%>
|
|
17
|
+
postgresql-dev
|
|
18
|
+
<%- end -%>
|
|
19
|
+
RUN gem install bundler -v <%= Modulorails.data.bundler_version %>
|
|
20
|
+
|
|
21
|
+
COPY Gemfile Gemfile.lock ./
|
|
22
|
+
RUN bundle check || bundle install --deployment --jobs=2 \
|
|
23
|
+
&& rm -rf vendor/bundle/ruby/*/cache/*
|
|
24
|
+
|
|
25
|
+
COPY package.json yarn.lock ./
|
|
26
|
+
RUN yarn install
|
|
27
|
+
|
|
28
|
+
COPY . .
|
|
29
|
+
RUN bundle exec rake assets:precompile
|
|
30
|
+
|
|
31
|
+
# FINAL IMAGE
|
|
32
|
+
FROM ruby:<%= Modulorails.data.ruby_version %>-alpine
|
|
33
|
+
|
|
34
|
+
WORKDIR /app
|
|
35
|
+
|
|
36
|
+
RUN apk add --update --no-cache \
|
|
37
|
+
curl \
|
|
38
|
+
git \
|
|
39
|
+
nodejs \
|
|
40
|
+
tzdata \
|
|
41
|
+
shared-mime-info \
|
|
42
|
+
<%- adapter = Modulorails.data.adapter -%>
|
|
43
|
+
<%- if adapter =~ /mysql/ -%>
|
|
44
|
+
mysql-dev \
|
|
45
|
+
<%- else -%>
|
|
46
|
+
postgresql-dev \
|
|
47
|
+
<%- end -%>
|
|
48
|
+
&& rm -rf .git/
|
|
49
|
+
|
|
50
|
+
COPY --from=builder /app .
|
|
51
|
+
|
|
52
|
+
RUN bundle config --local path vendor/bundle \
|
|
53
|
+
&& bundle config --local without development:test:assets
|
|
54
|
+
|
|
55
|
+
EXPOSE 3000
|
|
56
|
+
|
|
57
|
+
ENTRYPOINT ["./entrypoints/docker-entrypoint.sh"]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
FROM ruby:<%= Modulorails.data.ruby_version %>-alpine
|
|
2
|
+
|
|
3
|
+
ENV RAILS_ENV=development
|
|
4
|
+
WORKDIR /app
|
|
5
|
+
|
|
6
|
+
RUN apk add --update --no-cache \
|
|
7
|
+
alpine-sdk \
|
|
8
|
+
nodejs \
|
|
9
|
+
yarn \
|
|
10
|
+
tzdata \
|
|
11
|
+
<%- adapter = Modulorails.data.adapter -%>
|
|
12
|
+
<%- if adapter =~ /mysql/ -%>
|
|
13
|
+
mysql-dev
|
|
14
|
+
<%- else -%>
|
|
15
|
+
postgresql-dev
|
|
16
|
+
<%- end -%>
|
|
17
|
+
RUN gem install bundler -v <%= Modulorails.data.bundler_version %>
|
|
18
|
+
|
|
19
|
+
COPY Gemfile Gemfile.lock ./
|
|
20
|
+
RUN bundle install --jobs=2
|
|
21
|
+
|
|
22
|
+
COPY . .
|
|
23
|
+
|
|
24
|
+
EXPOSE 3000
|
|
25
|
+
|
|
26
|
+
ENTRYPOINT ["./entrypoints/docker-entrypoint.sh"]
|