potassium 6.2.0 → 6.3.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/.circleci/config.yml +23 -0
- data/.circleci/setup-rubygems.sh +3 -0
- data/CHANGELOG.md +12 -0
- data/README.md +10 -0
- data/lib/potassium/assets/.circleci/config.yml.erb +83 -34
- data/lib/potassium/assets/README.yml +1 -4
- data/lib/potassium/helpers/template-helpers.rb +4 -0
- data/lib/potassium/recipes/ci.rb +9 -39
- data/lib/potassium/recipes/file_storage.rb +1 -1
- data/lib/potassium/recipes/front_end.rb +8 -2
- data/lib/potassium/recipes/monitoring.rb +5 -0
- data/lib/potassium/templates/application.rb +1 -0
- data/lib/potassium/version.rb +2 -1
- data/spec/features/ci_spec.rb +7 -4
- data/spec/features/front_end_spec.rb +14 -0
- metadata +7 -8
- data/lib/potassium/assets/Dockerfile.ci +0 -6
- data/lib/potassium/assets/bin/cibuild.erb +0 -117
- data/lib/potassium/assets/docker-compose.ci.yml +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6e930d3ad3b2989b3fd4e3675da60f6dec57089d0eba9eabe4d1bccbcae68de
|
4
|
+
data.tar.gz: 50ca1761257ba7f22d0724a3f1996a703d39dfefab842d4198cc99f7392741d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7044e4cfce08ab3cca65a7dbc30ec8be951ab478f368067955a8435bac40fe4c769f0a8b2b38828ab93614c0eeac8fe67d68c1f59ae3d8317b424c848e639c33
|
7
|
+
data.tar.gz: c699ee1eedb6b15512acbbdb6b53bab2e98b65e7aab413d398d47042e58e1c16ee8b786394674d6b07ba93f248a51f4da7bf366eaf184d0a13e4527d99647fe5
|
data/.circleci/config.yml
CHANGED
@@ -76,9 +76,32 @@ jobs:
|
|
76
76
|
cat tmp/files_to_lint | grep -E '.+\.(rb)$' | xargs bundle exec rubocop --force-exclusion \
|
77
77
|
| ./bin/reviewdog -reporter=github-pr-review -f=rubocop
|
78
78
|
|
79
|
+
deploy:
|
80
|
+
executor: ruby-executor
|
81
|
+
steps:
|
82
|
+
- setup
|
83
|
+
|
84
|
+
- run:
|
85
|
+
name: Setup rubygems
|
86
|
+
command: bash .circleci/setup-rubygems.sh
|
87
|
+
|
88
|
+
- run:
|
89
|
+
name: Publish to rubygems
|
90
|
+
command: |
|
91
|
+
gem build potassium.gemspec
|
92
|
+
version_tag=$(git describe --tags)
|
93
|
+
gem push potassium-${version_tag#v}.gem
|
94
|
+
|
79
95
|
workflows:
|
80
96
|
test_and_lint:
|
81
97
|
jobs:
|
82
98
|
- test
|
83
99
|
- lint:
|
84
100
|
context: org-global
|
101
|
+
- deploy:
|
102
|
+
context: org-global
|
103
|
+
filters:
|
104
|
+
tags:
|
105
|
+
only: /.*/
|
106
|
+
branches:
|
107
|
+
ignore: /.*/
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,18 @@
|
|
2
2
|
|
3
3
|
## Unreleased
|
4
4
|
|
5
|
+
## 6.3.0
|
6
|
+
|
7
|
+
Features:
|
8
|
+
- Add `monitoring` recipe with scout gem [#353](https://github.com/platanus/potassium/pull/353)
|
9
|
+
- Change CircleCI config to use cache in tests, and remove old cibuild flow [#366](https://github.com/platanus/potassium/pull/366)
|
10
|
+
|
11
|
+
Fixes:
|
12
|
+
- Explicitly install project specified node version in CircleCI build [#352](https://github.com/platanus/potassium/pull/352)
|
13
|
+
- Fixes `tailwindCSS@^2` incompatibility with `postcss@^7` [#356](https://github.com/platanus/potassium/pull/356)
|
14
|
+
- Update marcel gem (shrine's mime type analyzer) to avoid mimemagic dependency [#357](https://github.com/platanus/potassium/pull/357)
|
15
|
+
- Explicitly set the frontend test environment to `jsdom` [#367](https://github.com/platanus/potassium/pull/367)
|
16
|
+
|
5
17
|
## 6.2.0
|
6
18
|
|
7
19
|
Features:
|
data/README.md
CHANGED
@@ -52,6 +52,7 @@ Potassium Rails apps includes the following gems and technologies:
|
|
52
52
|
taking too long
|
53
53
|
- [Tzinfo-Data](https://github.com/tzinfo/tzinfo-data) for updating timezone information
|
54
54
|
- [Faker](https://github.com/stympy/faker) for creating development data
|
55
|
+
- [Scout](https://github.com/scoutapp/scout_apm_ruby) for monitoring performance
|
55
56
|
|
56
57
|
The following optional integrations are also added:
|
57
58
|
|
@@ -154,6 +155,15 @@ It's important to remember that `bin/potassium_test create`:
|
|
154
155
|
- Can receive the same options as `potassium create`
|
155
156
|
- Runs with options with a default value. This is to avoid the "asking part" of the creation process. You need to enable what you want to test like this: `$ bin/potassium_test create --clockwork`
|
156
157
|
|
158
|
+
## Publishing
|
159
|
+
On master branch.
|
160
|
+
|
161
|
+
1. Change `VERSION` in `lib/potassium/version.rb`
|
162
|
+
2. Change `Unreleased` title to current version in `CHANGELOG.md`
|
163
|
+
3. Commit new release. For example: `Releasing v6.3.0`
|
164
|
+
4. Create tag. For example: `git tag v6.3.0`
|
165
|
+
5. Push tag: `git push origin v6.3.0`
|
166
|
+
|
157
167
|
## Contributing
|
158
168
|
|
159
169
|
If you want to add functionality please go to
|
@@ -1,34 +1,37 @@
|
|
1
|
-
version: 2
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
version: 2.1
|
2
|
+
|
3
|
+
ruby-image: &ruby-image circleci/ruby:<%= ruby_version %>
|
4
|
+
<%- if selected?(:database, :postgresql) -%>
|
5
|
+
postgres-image: &postgres-image postgres:<%= Potassium::POSTGRES_VERSION %>
|
6
|
+
<%- end -%>
|
7
|
+
<%- if selected?(:background_processor) -%>
|
8
|
+
redis-image: &redis-image redis
|
9
|
+
<%- end -%>
|
10
|
+
env-vars: &env-vars
|
11
|
+
BUNDLE_JOBS: 4
|
12
|
+
BUNDLE_PATH: vendor/bundle
|
13
|
+
RAILS_ENV: test
|
14
|
+
|
15
|
+
executors:
|
16
|
+
test-executor:
|
6
17
|
docker:
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
- run: bin/cibuild deps
|
18
|
-
|
19
|
-
- run: bin/cibuild db
|
20
|
-
- run: bin/cibuild tests
|
21
|
-
<% if selected?(:front_end, :vue) %>
|
22
|
-
- run: bin/cibuild js_tests
|
23
|
-
<% end %>
|
24
|
-
|
25
|
-
lint:
|
18
|
+
- image: *ruby-image
|
19
|
+
environment: *env-vars
|
20
|
+
<%- if selected?(:database, :postgresql) -%>
|
21
|
+
- image: *postgres-image
|
22
|
+
<%- end -%>
|
23
|
+
<%- if selected?(:background_processor) -%>
|
24
|
+
- image: *redis-image
|
25
|
+
<%- end -%>
|
26
|
+
|
27
|
+
lint-executor:
|
26
28
|
docker:
|
27
|
-
- image:
|
28
|
-
environment:
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
- image: *ruby-image
|
30
|
+
environment: *env-vars
|
31
|
+
|
32
|
+
commands:
|
33
|
+
setup:
|
34
|
+
description: checkout code, restore cache, install dependencies, save cache
|
32
35
|
steps:
|
33
36
|
- checkout
|
34
37
|
|
@@ -49,20 +52,67 @@ jobs:
|
|
49
52
|
gem install bundler:$BUNDLER_VERSION
|
50
53
|
bundle _$(echo $BUNDLER_VERSION)_ install
|
51
54
|
|
55
|
+
- run:
|
56
|
+
name: Install yarn dependencies
|
57
|
+
command: |
|
58
|
+
curl -sL https://deb.nodesource.com/setup_$(cat .node-version).x | sudo -E bash -
|
59
|
+
sudo apt-get install -y nodejs
|
60
|
+
curl -o- -sL https://yarnpkg.com/install.sh | bash
|
61
|
+
sudo ln -s $HOME/.yarn/bin/yarn /usr/local/bin/yarn
|
62
|
+
yarn install --frozen-lockfile
|
63
|
+
|
52
64
|
- save_cache:
|
53
65
|
key: bundle-dependencies-{{ checksum "Gemfile.lock" }}
|
54
66
|
paths:
|
55
67
|
- vendor/bundle
|
56
68
|
|
57
|
-
- run:
|
58
|
-
name: Install yarn dependencies
|
59
|
-
command: yarn install --frozen-lockfile
|
60
|
-
|
61
69
|
- save_cache:
|
62
70
|
key: yarn-dependencies-{{ checksum "yarn.lock" }}
|
63
71
|
paths:
|
64
72
|
- node_modules
|
65
73
|
|
74
|
+
jobs:
|
75
|
+
test:
|
76
|
+
executor: test-executor
|
77
|
+
steps:
|
78
|
+
- setup
|
79
|
+
|
80
|
+
<%- if selected?(:background_processor) -%>
|
81
|
+
- run:
|
82
|
+
name: Wait for redis service
|
83
|
+
command: dockerize -wait tcp://localhost:6379 -timeout 1m
|
84
|
+
<%- end -%>
|
85
|
+
<%- if selected?(:database, :postgresql) -%>
|
86
|
+
- run:
|
87
|
+
name: Wait for postgres service
|
88
|
+
command: dockerize -wait tcp://localhost:5432 -timeout 1m
|
89
|
+
|
90
|
+
- run:
|
91
|
+
name: Setup database
|
92
|
+
command: bundle exec rails db:create db:schema:load
|
93
|
+
<%- end -%>
|
94
|
+
|
95
|
+
- run:
|
96
|
+
name: Run rspec
|
97
|
+
command: |
|
98
|
+
RSPEC_JUNIT_ARGS="-r rspec_junit_formatter -f RspecJunitFormatter -o test_results/rspec.xml"
|
99
|
+
RSPEC_FORMAT_ARGS="-f progress --no-color -p 10"
|
100
|
+
bundle exec rspec spec $RSPEC_FORMAT_ARGS $RSPEC_JUNIT_ARGS
|
101
|
+
|
102
|
+
<%- if selected?(:front_end, :vue) -%>
|
103
|
+
- run:
|
104
|
+
name: Run jest
|
105
|
+
command: yarn run test
|
106
|
+
<%- end -%>
|
107
|
+
|
108
|
+
- store_test_results:
|
109
|
+
path: test_results
|
110
|
+
|
111
|
+
lint:
|
112
|
+
executor: lint-executor
|
113
|
+
steps:
|
114
|
+
- setup
|
115
|
+
|
66
116
|
- run:
|
67
117
|
name: Install reviewdog
|
68
118
|
command: |
|
@@ -94,7 +144,6 @@ jobs:
|
|
94
144
|
| ./bin/reviewdog -reporter=github-pr-review -f=stylelint
|
95
145
|
|
96
146
|
workflows:
|
97
|
-
version: 2
|
98
147
|
test_and_lint:
|
99
148
|
jobs:
|
100
149
|
- test
|
@@ -42,10 +42,7 @@ readme:
|
|
42
42
|
The project is setup to run tests
|
43
43
|
in [CircleCI](https://circleci.com/gh/platanus/<%= get(:dasherized_app_name) %>/tree/master)
|
44
44
|
|
45
|
-
You can also run the test locally simulating the production environment using
|
46
|
-
Just make sure you have docker installed and run:
|
47
|
-
|
48
|
-
bin/cibuild
|
45
|
+
You can also run the test locally simulating the production environment using [CircleCI's method](https://circleci.com/docs/2.0/local-cli/).
|
49
46
|
deployment:
|
50
47
|
title: "Deployment"
|
51
48
|
body: |
|
@@ -7,6 +7,10 @@ module TemplateHelpers
|
|
7
7
|
"#{Potassium::NODE_VERSION}.x"
|
8
8
|
end
|
9
9
|
|
10
|
+
def ruby_version
|
11
|
+
Semantic::Version.new(Potassium::RUBY_VERSION).instance_eval { "#{major}.#{minor}" }
|
12
|
+
end
|
13
|
+
|
10
14
|
def load_recipe(recipe_name)
|
11
15
|
@recipes ||= {}
|
12
16
|
@recipes[recipe_name] ||= get_recipe_class(recipe_name.to_sym).new(self)
|
data/lib/potassium/recipes/ci.rb
CHANGED
@@ -1,50 +1,20 @@
|
|
1
1
|
class Recipes::Ci < Rails::AppBuilder
|
2
2
|
def create
|
3
|
-
copy_file '../assets/Dockerfile.ci', 'Dockerfile.ci'
|
4
3
|
template '../assets/.circleci/config.yml.erb', '.circleci/config.yml'
|
5
4
|
|
6
|
-
template '../assets/bin/cibuild.erb', 'bin/cibuild'
|
7
|
-
run "chmod a+x bin/cibuild"
|
8
|
-
|
9
|
-
copy_file '../assets/docker-compose.ci.yml', 'docker-compose.ci.yml'
|
10
|
-
|
11
5
|
gather_gems(:test) do
|
12
|
-
gather_gem 'rspec_junit_formatter', '0.
|
13
|
-
end
|
14
|
-
|
15
|
-
compose = DockerHelpers.new('docker-compose.ci.yml')
|
16
|
-
|
17
|
-
if selected?(:database, :mysql)
|
18
|
-
srv =
|
19
|
-
<<~YAML
|
20
|
-
image: mysql:#{Potassium::MYSQL_VERSION}
|
21
|
-
environment:
|
22
|
-
MYSQL_ALLOW_EMPTY_PASSWORD: 'true'
|
23
|
-
YAML
|
24
|
-
compose.add_service("mysql", srv)
|
25
|
-
compose.add_link('test', 'mysql')
|
26
|
-
compose.add_env('test', 'MYSQL_HOST', 'mysql')
|
27
|
-
compose.add_env('test', 'MYSQL_PORT', '3306')
|
28
|
-
|
29
|
-
elsif selected?(:database, :postgresql)
|
30
|
-
srv =
|
31
|
-
<<~YAML
|
32
|
-
image: "postgres:#{Potassium::POSTGRES_VERSION}"
|
33
|
-
environment:
|
34
|
-
POSTGRES_USER: postgres
|
35
|
-
POSTGRES_PASSWORD: ''
|
36
|
-
YAML
|
37
|
-
compose.add_service("postgresql", srv)
|
38
|
-
compose.add_link('test', 'postgresql')
|
39
|
-
compose.add_env('test', 'DB_USER', 'postgres')
|
40
|
-
compose.add_env('test', 'DB_HOST', 'postgresql')
|
41
|
-
compose.add_env('test', 'DB_PORT', '5432')
|
6
|
+
gather_gem 'rspec_junit_formatter', '~> 0.4'
|
42
7
|
end
|
43
8
|
|
44
|
-
compose.add_volume('test_data')
|
45
|
-
|
46
9
|
add_readme_header :ci
|
47
|
-
|
48
10
|
application 'config.assets.js_compressor = :uglifier', env: 'test'
|
49
11
|
end
|
12
|
+
|
13
|
+
def install
|
14
|
+
create
|
15
|
+
end
|
16
|
+
|
17
|
+
def installed?
|
18
|
+
file_exist?('.circleci/config.yml')
|
19
|
+
end
|
50
20
|
end
|
@@ -39,7 +39,7 @@ class Recipes::FileStorage < Rails::AppBuilder
|
|
39
39
|
|
40
40
|
def add_shrine
|
41
41
|
gather_gem('shrine', '~> 3.0')
|
42
|
-
gather_gem('marcel', '~> 0
|
42
|
+
gather_gem('marcel', '~> 1.0')
|
43
43
|
copy_file('../assets/config/shrine.rb', 'config/initializers/shrine.rb', force: true)
|
44
44
|
copy_file('../assets/app/uploaders/image_uploader.rb', 'app/uploaders/image_uploader.rb')
|
45
45
|
copy_file('../assets/app/uploaders/base_uploader.rb', 'app/uploaders/base_uploader.rb')
|
@@ -69,7 +69,8 @@ class Recipes::FrontEnd < Rails::AppBuilder
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def setup_tailwind
|
72
|
-
run
|
72
|
+
run "bin/yarn add tailwindcss@#{Potassium::TAILWINDCSS}"
|
73
|
+
specify_autoprefixer_postcss_compatibility_versions
|
73
74
|
setup_client_css
|
74
75
|
remove_server_css_requires
|
75
76
|
setup_tailwind_requirements
|
@@ -147,6 +148,10 @@ class Recipes::FrontEnd < Rails::AppBuilder
|
|
147
148
|
JS
|
148
149
|
end
|
149
150
|
|
151
|
+
def specify_autoprefixer_postcss_compatibility_versions
|
152
|
+
run 'bin/yarn -D add postcss@^7 autoprefixer@^9'
|
153
|
+
end
|
154
|
+
|
150
155
|
def setup_client_css
|
151
156
|
application_css = 'app/javascript/css/application.css'
|
152
157
|
create_file application_css, "", force: true
|
@@ -264,7 +269,8 @@ class Recipes::FrontEnd < Rails::AppBuilder
|
|
264
269
|
},
|
265
270
|
"snapshotSerializers": [
|
266
271
|
"<rootDir>/node_modules/jest-serializer-vue"
|
267
|
-
]
|
272
|
+
],
|
273
|
+
"testEnvironment": "jsdom"
|
268
274
|
}
|
269
275
|
}
|
270
276
|
end
|
data/lib/potassium/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Potassium
|
2
|
-
VERSION = "6.
|
2
|
+
VERSION = "6.3.0"
|
3
3
|
RUBY_VERSION = "2.7.0"
|
4
4
|
RAILS_VERSION = "~> 6.0.2"
|
5
5
|
RUBOCOP_VERSION = "~> 1.9"
|
@@ -7,4 +7,5 @@ module Potassium
|
|
7
7
|
POSTGRES_VERSION = "11.3"
|
8
8
|
MYSQL_VERSION = "5.7"
|
9
9
|
NODE_VERSION = "12"
|
10
|
+
TAILWINDCSS = "npm:@tailwindcss/postcss7-compat"
|
10
11
|
end
|
data/spec/features/ci_spec.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
require "rubocop"
|
3
3
|
|
4
|
-
RSpec.describe
|
4
|
+
RSpec.describe 'CI' do
|
5
5
|
before(:all) do
|
6
6
|
drop_dummy_database
|
7
7
|
remove_project_directory
|
8
|
-
create_dummy_project
|
8
|
+
create_dummy_project
|
9
9
|
end
|
10
10
|
|
11
|
-
it "correctly
|
12
|
-
|
11
|
+
it "correctly bundles the config file" do
|
12
|
+
yml_path = "#{project_path}/.circleci/config.yml"
|
13
|
+
content = IO.read(yml_path)
|
14
|
+
expect(File.exist?(yml_path)).to be true
|
15
|
+
expect(content).to include('circleci/ruby', 'cache', 'rspec', 'reviewdog')
|
13
16
|
end
|
14
17
|
end
|
@@ -22,6 +22,12 @@ RSpec.describe "Front end" do
|
|
22
22
|
expect(File).not_to exist(application_css_path)
|
23
23
|
end
|
24
24
|
|
25
|
+
def expect_to_have_tailwind_compatibility_build
|
26
|
+
expect(node_modules_file).to include("\"tailwindcss\": \"npm:@tailwindcss/postcss7-compat\"")
|
27
|
+
expect(node_modules_file).to include("\"autoprefixer\": \"^9\"")
|
28
|
+
expect(node_modules_file).to include("\"postcss\": \"^7\"")
|
29
|
+
end
|
30
|
+
|
25
31
|
context "with vue" do
|
26
32
|
before(:all) do
|
27
33
|
remove_project_directory
|
@@ -55,6 +61,10 @@ RSpec.describe "Front end" do
|
|
55
61
|
expect(tailwind_config_file).to include('module.exports')
|
56
62
|
end
|
57
63
|
|
64
|
+
it 'includes correct packages for tailwind, postcss and autoprefixer compatibility build' do
|
65
|
+
expect_to_have_tailwind_compatibility_build
|
66
|
+
end
|
67
|
+
|
58
68
|
context "with graphql" do
|
59
69
|
before(:all) do
|
60
70
|
remove_project_directory
|
@@ -84,5 +94,9 @@ RSpec.describe "Front end" do
|
|
84
94
|
it "creates application_js_file for tailwind without vue" do
|
85
95
|
expect(application_js_file).to include("import '../css/application.css';")
|
86
96
|
end
|
97
|
+
|
98
|
+
it 'includes correct packages for tailwind, postcss and autoprefixer compatibility build' do
|
99
|
+
expect_to_have_tailwind_compatibility_build
|
100
|
+
end
|
87
101
|
end
|
88
102
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: potassium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- juliogarciag
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -244,6 +244,7 @@ extensions: []
|
|
244
244
|
extra_rdoc_files: []
|
245
245
|
files:
|
246
246
|
- ".circleci/config.yml"
|
247
|
+
- ".circleci/setup-rubygems.sh"
|
247
248
|
- ".editorconfig"
|
248
249
|
- ".gitignore"
|
249
250
|
- ".node-version"
|
@@ -270,7 +271,6 @@ files:
|
|
270
271
|
- lib/potassium/assets/.pryrc
|
271
272
|
- lib/potassium/assets/.rubocop.yml
|
272
273
|
- lib/potassium/assets/.stylelintrc.json
|
273
|
-
- lib/potassium/assets/Dockerfile.ci
|
274
274
|
- lib/potassium/assets/Makefile.erb
|
275
275
|
- lib/potassium/assets/Procfile
|
276
276
|
- lib/potassium/assets/README.md.erb
|
@@ -300,7 +300,6 @@ files:
|
|
300
300
|
- lib/potassium/assets/app/uploaders/image_uploader.rb
|
301
301
|
- lib/potassium/assets/app/views/shared/_gtm_body.html.erb
|
302
302
|
- lib/potassium/assets/app/views/shared/_gtm_head.html.erb
|
303
|
-
- lib/potassium/assets/bin/cibuild.erb
|
304
303
|
- lib/potassium/assets/bin/release
|
305
304
|
- lib/potassium/assets/bin/setup.erb
|
306
305
|
- lib/potassium/assets/bin/setup_heroku.erb
|
@@ -314,7 +313,6 @@ files:
|
|
314
313
|
- lib/potassium/assets/config/sentry.rb.erb
|
315
314
|
- lib/potassium/assets/config/shrine.rb
|
316
315
|
- lib/potassium/assets/config/storage.yml
|
317
|
-
- lib/potassium/assets/docker-compose.ci.yml
|
318
316
|
- lib/potassium/assets/docker-compose.yml
|
319
317
|
- lib/potassium/assets/es-CL.yml
|
320
318
|
- lib/potassium/assets/lib/tasks/auto_annotate_models.rake
|
@@ -372,6 +370,7 @@ files:
|
|
372
370
|
- lib/potassium/recipes/i18n.rb
|
373
371
|
- lib/potassium/recipes/listen.rb
|
374
372
|
- lib/potassium/recipes/mailer.rb
|
373
|
+
- lib/potassium/recipes/monitoring.rb
|
375
374
|
- lib/potassium/recipes/node.rb
|
376
375
|
- lib/potassium/recipes/power_types.rb
|
377
376
|
- lib/potassium/recipes/pry.rb
|
@@ -430,7 +429,7 @@ homepage: https://github.com/platanus/potassium
|
|
430
429
|
licenses:
|
431
430
|
- MIT
|
432
431
|
metadata: {}
|
433
|
-
post_install_message:
|
432
|
+
post_install_message:
|
434
433
|
rdoc_options: []
|
435
434
|
require_paths:
|
436
435
|
- lib
|
@@ -446,7 +445,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
446
445
|
version: '0'
|
447
446
|
requirements: []
|
448
447
|
rubygems_version: 3.1.2
|
449
|
-
signing_key:
|
448
|
+
signing_key:
|
450
449
|
specification_version: 4
|
451
450
|
summary: An application generator from Platanus
|
452
451
|
test_files:
|
@@ -1,117 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
trap "exit" SIGINT SIGTERM
|
3
|
-
|
4
|
-
command -v docker >/dev/null 2>&1 && docker info >/dev/null || {
|
5
|
-
printf >&2 "\e[31mI require docker but it's not installed. Aborting.\e[0m\n"; exit 1;
|
6
|
-
}
|
7
|
-
|
8
|
-
DOCKER_COMPOSE_ARGS="-f docker-compose.ci.yml"
|
9
|
-
|
10
|
-
# Build Image
|
11
|
-
build(){
|
12
|
-
docker-compose $DOCKER_COMPOSE_ARGS build test
|
13
|
-
}
|
14
|
-
|
15
|
-
# Wait services to be ready
|
16
|
-
wait_services(){
|
17
|
-
function test_service {
|
18
|
-
docker-compose $DOCKER_COMPOSE_ARGS run --rm test sh -c "nc -z $1 $2"
|
19
|
-
}
|
20
|
-
|
21
|
-
count=0
|
22
|
-
# Chain tests together by using &&
|
23
|
-
until (
|
24
|
-
<% if(selected?(:database, :mysql) || selected?(:database, :postgresql))-%>
|
25
|
-
test_service '$DB_HOST' '$DB_PORT' && \
|
26
|
-
<% end-%>
|
27
|
-
echo "Services ready"
|
28
|
-
)
|
29
|
-
do
|
30
|
-
((count++))
|
31
|
-
if [ $count -gt 50 ]
|
32
|
-
then
|
33
|
-
echo "Services didn't become ready in time"
|
34
|
-
exit 1
|
35
|
-
else
|
36
|
-
echo "Waiting for services to become ready..."
|
37
|
-
fi
|
38
|
-
sleep 0.5
|
39
|
-
done
|
40
|
-
}
|
41
|
-
|
42
|
-
# Prepare dependencies
|
43
|
-
dependencies(){
|
44
|
-
docker-compose $DOCKER_COMPOSE_ARGS run --rm test bundle install
|
45
|
-
}
|
46
|
-
|
47
|
-
<% if selected?(:front_end, :vue) %>
|
48
|
-
yarn_dependencies(){
|
49
|
-
docker-compose $DOCKER_COMPOSE_ARGS run --rm test yarn install
|
50
|
-
}
|
51
|
-
<% end %>
|
52
|
-
|
53
|
-
assets() {
|
54
|
-
docker-compose $DOCKER_COMPOSE_ARGS run --rm test /bin/bash -c "bin/setup && bundle exec rake assets:precompile"
|
55
|
-
}
|
56
|
-
|
57
|
-
# Prepare database
|
58
|
-
database(){
|
59
|
-
docker-compose $DOCKER_COMPOSE_ARGS run --rm test bundle exec rake db:create db:schema:load
|
60
|
-
}
|
61
|
-
|
62
|
-
# Run the specs
|
63
|
-
tests(){
|
64
|
-
[ -n "$CI" ] && {
|
65
|
-
RSPEC_JUNIT_ARGS="-r rspec_junit_formatter --format RspecJunitFormatter -o $HOME/.rspec_reports/junit.xml"
|
66
|
-
RSPEC_FORMAT_ARGS="--format progress --no-color"
|
67
|
-
}
|
68
|
-
docker-compose $DOCKER_COMPOSE_ARGS run --rm test bundle exec rspec spec $RSPEC_FORMAT_ARGS $RSPEC_JUNIT_ARGS
|
69
|
-
}
|
70
|
-
|
71
|
-
<% if selected?(:front_end, :vue) %>
|
72
|
-
js_tests(){
|
73
|
-
docker-compose $DOCKER_COMPOSE_ARGS run --rm test yarn run test
|
74
|
-
}
|
75
|
-
<% end %>
|
76
|
-
|
77
|
-
# Run the complete ci build
|
78
|
-
no_ci(){
|
79
|
-
build
|
80
|
-
wait_services
|
81
|
-
dependencies
|
82
|
-
assets
|
83
|
-
database
|
84
|
-
tests
|
85
|
-
}
|
86
|
-
|
87
|
-
case "$1" in
|
88
|
-
"")
|
89
|
-
no_ci
|
90
|
-
;;
|
91
|
-
"services")
|
92
|
-
wait_services
|
93
|
-
;;
|
94
|
-
"deps"|"dependencies")
|
95
|
-
dependencies <% if selected?(:front_end, :vue) %>&& yarn_dependencies<% end %>
|
96
|
-
;;
|
97
|
-
"assets")
|
98
|
-
assets
|
99
|
-
;;
|
100
|
-
"db"|"database")
|
101
|
-
database
|
102
|
-
;;
|
103
|
-
<% if selected?(:front_end, :vue) %>
|
104
|
-
"js_tests")
|
105
|
-
js_tests
|
106
|
-
;;
|
107
|
-
<% end %>
|
108
|
-
"specs"|"tests")
|
109
|
-
tests
|
110
|
-
;;
|
111
|
-
"build")
|
112
|
-
build
|
113
|
-
;;
|
114
|
-
*)
|
115
|
-
echo "Usage: cibuild [services|deps|assets|db|specs|build]"
|
116
|
-
;;
|
117
|
-
esac
|