jt_tools 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +12 -2
- data/.github/FUNDING.yml +4 -0
- data/README.md +19 -10
- data/_config.yml +2 -1
- data/bin/test +17 -5
- data/jt_tools.gemspec +1 -1
- data/lib/install/.circleci/{config.yml.sample → config.yml} +88 -19
- data/lib/install/.dependabot/config.yml +3 -3
- data/lib/install/.editorconfig +301 -0
- data/lib/install/.erb-lint.yml +2 -2
- data/lib/install/.eslintrc.js +8 -11
- data/lib/install/.pronto.yml +3 -5
- data/lib/install/.reek.yml +3 -6
- data/lib/install/.rubocop.yml +22 -19
- data/lib/install/.simplecov +17 -0
- data/lib/install/{.yamllint → .yamllint.yml} +2 -1
- data/lib/install/Brewfile +6 -2
- data/lib/install/Gemfile.tools +2 -2
- data/lib/install/app.json +17 -46
- data/lib/install/bin/git-hooks/post-merge.sample +0 -9
- data/lib/install/bin/git-hooks/pre-push.sample +1 -1
- data/lib/install/bin/heroku-postdeploy +1 -7
- data/lib/install/bin/heroku-release +4 -1
- data/lib/install/bin/{lint-github-pr → lint-pr} +0 -0
- data/lib/install/bin/tools-setup +1 -1
- data/lib/install/bin/tools-upgrade +2 -0
- data/lib/install/codecov.yml +5 -4
- data/lib/install/config/rails_best_practices.yml +43 -0
- data/lib/jt_tools/railtie.rb +2 -0
- data/lib/{version.rb → jt_tools/version.rb} +1 -1
- data/lib/jt_tools.rb +2 -0
- data/lib/tasks/install.rake +3 -1
- data/template.rb +36 -17
- metadata +11 -12
- data/_sample/test_erb.html.erb +0 -2
- data/_sample/test_eslint.js +0 -1
- data/_sample/test_yamlint.yml +0 -1
- data/lib/install/.prettierrc.js +0 -4
- data/lib/install/lib/test/coverage.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 303aa96abfb07573d5a9eac9a8cbdb411dba30ced323e113b122aafbfda28620
|
4
|
+
data.tar.gz: c69d491e99acf660f65a3678f78e5c37e605bffd2479ad2c1da6c4f933bbbec5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02ade8a3a413d0a9f8bbb18296d1ecab40a3ca7be950d87ceabde5591e16fb22ce40ec2078c271766ffead6d91c754fcdc828247ffaaadd31fa6047521f557b5
|
7
|
+
data.tar.gz: 76b38e94b17cd308c4a80689a46971b47f2394735f72183522d2a4f8a9580b039915eab3e90b81741089b0c252878ea095313ff2b91f299544624c5c00cecaf3
|
data/.circleci/config.yml
CHANGED
@@ -1,13 +1,23 @@
|
|
1
|
+
---
|
1
2
|
version: 2.1
|
2
3
|
jobs:
|
3
4
|
test:
|
4
5
|
docker:
|
5
6
|
- image: circleci/ruby:2.6-node
|
7
|
+
environment:
|
8
|
+
DATABASE_URL: postgresql://ubuntu@127.0.0.1/db_test
|
9
|
+
BUNDLE_JOBS: 4
|
10
|
+
BUNDLE_RETRY: 3
|
11
|
+
|
12
|
+
- image: circleci/postgres:alpine-ram
|
13
|
+
environment:
|
14
|
+
POSTGRES_USER: ubuntu
|
15
|
+
POSTGRES_DB: db_test
|
6
16
|
parallelism: 1
|
7
17
|
steps:
|
8
18
|
- checkout
|
9
19
|
- run: gem install rails -N --update-sources
|
10
|
-
- run: sudo apt-get install cmake curl
|
20
|
+
- run: sudo apt-get install cmake curl yamllint python3-setuptools python3-pkg-resources
|
11
21
|
- run: curl -fLSs https://circle.ci/cli | sudo bash
|
12
22
|
- run: git config --global user.email "you@example.com" && git config --global user.name "Your Name"
|
13
23
|
- run: bin/test
|
@@ -19,7 +29,7 @@ workflows:
|
|
19
29
|
- test
|
20
30
|
|
21
31
|
daily:
|
22
|
-
triggers:
|
32
|
+
triggers:
|
23
33
|
- schedule:
|
24
34
|
cron: "0 0 * * *"
|
25
35
|
filters:
|
data/.github/FUNDING.yml
ADDED
data/README.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
[![CircleCI](https://circleci.com/gh/jetthoughts/jt_tools.svg?style=svg)](https://circleci.com/gh/jetthoughts/jt_tools)
|
2
|
+
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjetthoughts%2Fjt_tools.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjetthoughts%2Fjt_tools?ref=badge_shield)
|
2
3
|
|
3
4
|
# JetThoughts Tools
|
4
5
|
|
5
|
-
Ruby on Rails ecosystem to maintain projects without losing your mind.
|
6
|
+
Ruby on Rails Continious Deployemnt ecosystem to maintain projects without losing your mind.
|
6
7
|
Automatization scripts and services integrations which make your product world class level with no effort!
|
7
8
|
|
8
9
|
More details could be found in such posts:
|
@@ -10,17 +11,22 @@ More details could be found in such posts:
|
|
10
11
|
* [How to Setup a Project That Can Host Up to 1000 Users for Free](https://jtway.co/how-to-setup-a-project-that-can-host-up-to-1000-users-for-free-ab59ad3edaf1)
|
11
12
|
* [Our Default Ruby Development Stack](https://jtway.co/our-default-ruby-development-stack-9d7e80ef21df)
|
12
13
|
* [Heroku Reviews Apps prevent delivering bugs on production](https://jtway.co/make-master-stable-again-b15c9ff3b129)
|
14
|
+
* [Effortless Code Conventions Review for Pull Request Changes](https://jtway.co/effortless-code-review-for-pull-request-changes-241206b1cb04)
|
13
15
|
|
14
16
|
# Services and Tools
|
15
17
|
|
16
18
|
Pre-setup for service
|
17
19
|
|
18
|
-
*
|
19
|
-
*
|
20
|
-
*
|
21
|
-
*
|
22
|
-
*
|
23
|
-
*
|
20
|
+
* [GitHub](https://github.com)
|
21
|
+
* [Heroku](https://jtway.co/make-master-stable-again-b15c9ff3b129) (Heroku Reviews Apps)
|
22
|
+
* [CircleCI](https://circleci.com/)
|
23
|
+
* [Codecov](https://codecov.io/) and [Simplecov](https://github.com/colszowka/simplecov)
|
24
|
+
* [Dependabot](https://dependabot.com/)
|
25
|
+
* Code Styles:
|
26
|
+
* [Pronto](https://jtway.co/effortless-code-review-for-pull-request-changes-241206b1cb04)
|
27
|
+
* [Rubocop](https://github.com/rubocop-hq/rubocop)
|
28
|
+
* [ESLint](https://eslint.org/)
|
29
|
+
* [EditorConfig](https://editorconfig.org/)
|
24
30
|
|
25
31
|
## Installation
|
26
32
|
|
@@ -52,13 +58,13 @@ bin/tools-setup
|
|
52
58
|
bin/tools-upgrade
|
53
59
|
```
|
54
60
|
|
55
|
-
Auto-review on GitHub opened Pull Rquests to follow code
|
61
|
+
Auto-review on GitHub opened Pull Rquests to follow code consistency
|
56
62
|
|
57
63
|
```bash
|
58
|
-
bin/lint-
|
64
|
+
bin/lint-pr
|
59
65
|
```
|
60
66
|
|
61
|
-
Check
|
67
|
+
Check locally all problems in the current branch changes
|
62
68
|
|
63
69
|
```bash
|
64
70
|
bin/pronto run
|
@@ -67,3 +73,6 @@ bin/pronto run
|
|
67
73
|
## License
|
68
74
|
|
69
75
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
76
|
+
|
77
|
+
|
78
|
+
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjetthoughts%2Fjt_tools.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjetthoughts%2Fjt_tools?ref=badge_large)
|
data/_config.yml
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
---
|
2
|
+
theme: jekyll-theme-architect
|
data/bin/test
CHANGED
@@ -1,26 +1,33 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
|
-
set -
|
3
|
+
set -xeo pipefail
|
4
|
+
|
5
|
+
echo "=> Yamllint:"
|
6
|
+
yamllint --config-file lib/install/.yamllint.yml --strict .*/*.yml
|
7
|
+
yamllint --config-file lib/install/.yamllint.yml --strict *.yml
|
8
|
+
yamllint --config-file lib/install/.yamllint.yml --strict lib/**/.*.yml
|
9
|
+
yamllint --config-file lib/install/.yamllint.yml --strict **/.*/*.yml
|
4
10
|
|
5
11
|
mkdir -p tmp/
|
6
12
|
|
7
13
|
cd tmp
|
8
14
|
rm -rf test_tmpl
|
9
15
|
|
16
|
+
# Test installation of missed gems on applying template
|
10
17
|
gem uninstall oj || true
|
11
18
|
|
12
19
|
if [[ "TEST_APP_TEMPLATE" == "true" ]]
|
13
20
|
then
|
14
|
-
rails new test_tmpl
|
21
|
+
rails new test_tmpl --quiet
|
15
22
|
cd test_tmpl
|
16
23
|
rails app:template LOCATION=../template.rb
|
17
24
|
else
|
18
|
-
rails new test_tmpl
|
25
|
+
rails new test_tmpl --template ../template.rb --quiet --database postgresql
|
19
26
|
cd test_tmpl
|
27
|
+
bin/setup
|
20
28
|
fi
|
21
29
|
|
22
30
|
echo " => Verify CircleCI config:"
|
23
|
-
cp .circleci/config.yml.sample .circleci/config.yml
|
24
31
|
circleci config validate
|
25
32
|
|
26
33
|
echo " => Verify installation scripts:"
|
@@ -42,9 +49,14 @@ git commit -m 'Adds sample_for_linters'
|
|
42
49
|
|
43
50
|
bin/rubocop --fail-level F sample_for_linters.rb
|
44
51
|
bin/pronto run -c HEAD~1 --no-exit-code
|
52
|
+
BUNDLE_GEMFILE=Gemfile.tools bin/bundle exec rails_best_practices --without-color --silent --test .
|
53
|
+
BUNDLE_GEMFILE=Gemfile.tools bin/bundle exec erblint --config ../../lib/install/.erb-lint.yml --autocorrect .
|
45
54
|
|
46
|
-
CIRCLECI=false bin/lint-
|
55
|
+
CIRCLECI=false bin/lint-pr -f text
|
47
56
|
|
48
57
|
echo " => Run git hooks verifications"
|
49
58
|
bin/git-hooks/post-merge.sample
|
50
59
|
CIRCLECI=false bin/git-hooks/pre-push.sample
|
60
|
+
|
61
|
+
bin/rubocop --config ../../lib/install/.rubocop.yml --debug --extra-details --display-style-guide --parallel ../../lib
|
62
|
+
node_modules/.bin/eslint --config ../../lib/install/.eslintrc.js --quiet --no-color ../../lib/**/.*.js
|
data/jt_tools.gemspec
CHANGED
@@ -10,6 +10,7 @@ workflows:
|
|
10
10
|
version: 2
|
11
11
|
test:
|
12
12
|
jobs:
|
13
|
+
- test
|
13
14
|
- lint:
|
14
15
|
filters:
|
15
16
|
branches:
|
@@ -35,17 +36,16 @@ jobs:
|
|
35
36
|
# specify the version you desire here
|
36
37
|
- image: circleci/ruby:2.6-node-browsers
|
37
38
|
environment:
|
38
|
-
COVERAGE: true
|
39
39
|
BUNDLE_GEMFILE: Gemfile
|
40
|
-
BUNDLE_WITHOUT: "production:staging:development"
|
41
|
-
BUNDLE_JOBS: 3
|
42
|
-
BUNDLE_RETRY: 3
|
43
40
|
BUNDLE_PATH: vendor/bundle
|
44
|
-
|
41
|
+
BUNDLE_JOBS: 4
|
42
|
+
BUNDLE_RETRY: 3
|
43
|
+
BUNDLE_WITHOUT: "production:staging:development"
|
44
|
+
COVERAGE: true
|
45
|
+
DATABASE_URL: postgresql://ubuntu@localhost/db
|
46
|
+
NODE_ENV: test
|
45
47
|
RACK_ENV: test
|
46
|
-
|
47
|
-
PGUSER: ubuntu
|
48
|
-
DATABASE_URL: postgresql:ubuntu@127.0.0.1/db_test
|
48
|
+
RAILS_ENV: test
|
49
49
|
|
50
50
|
# Specify service dependencies here if necessary
|
51
51
|
# CircleCI maintains a library of pre-built images
|
@@ -53,11 +53,18 @@ jobs:
|
|
53
53
|
- image: circleci/postgres:alpine-ram
|
54
54
|
environment:
|
55
55
|
POSTGRES_USER: ubuntu
|
56
|
-
POSTGRES_DB:
|
56
|
+
POSTGRES_DB: db
|
57
57
|
|
58
58
|
steps:
|
59
59
|
- checkout
|
60
60
|
|
61
|
+
- run:
|
62
|
+
name: Install Bundler
|
63
|
+
command: |
|
64
|
+
echo 'export BUNDLER_VERSION=$(cat Gemfile.lock | tail -1 | tr -d " ")' >> $BASH_ENV
|
65
|
+
source $BASH_ENV
|
66
|
+
gem install bundler:$BUNDLER_VERSION
|
67
|
+
|
61
68
|
# Download and cache dependencies
|
62
69
|
- restore_cache:
|
63
70
|
name: Restore Bundler Cache
|
@@ -75,12 +82,75 @@ jobs:
|
|
75
82
|
- ./vendor/bundle
|
76
83
|
key: v1-dependencies-{{ checksum "Gemfile.lock" }}
|
77
84
|
|
78
|
-
-
|
79
|
-
|
85
|
+
- restore_cache:
|
86
|
+
name: Restore Yarn Cache
|
87
|
+
keys:
|
88
|
+
- v1-yarn-dependencies-{{ checksum "yarn.lock" }}
|
89
|
+
- v1-yarn-dependencies-
|
90
|
+
|
91
|
+
- run:
|
92
|
+
name: Install Yarn Dependencies
|
93
|
+
command: bin/yarn check || bin/yarn install
|
94
|
+
|
95
|
+
- save_cache:
|
96
|
+
name: Save Yarn Cache
|
97
|
+
paths:
|
98
|
+
- ./node_modules
|
99
|
+
key: v1-yarn-dependencies-{{ checksum "yarn.lock" }}
|
100
|
+
|
101
|
+
- restore_cache:
|
102
|
+
keys:
|
103
|
+
- asset-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ .Environment.CIRCLE_SHA1 }}
|
104
|
+
- asset-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-
|
105
|
+
- asset-cache-v1-{{ arch }}-{{ .Branch }}-
|
106
|
+
- asset-cache-v1-
|
107
|
+
|
108
|
+
- run:
|
109
|
+
name: Precompile Assets
|
110
|
+
command: |
|
111
|
+
bin/webpack
|
112
|
+
bin/rails assets:precompile
|
113
|
+
|
114
|
+
- save_cache:
|
115
|
+
key: asset-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ .Environment.CIRCLE_SHA1 }}
|
116
|
+
paths:
|
117
|
+
- public/assets
|
118
|
+
- public/pack-test
|
119
|
+
- tmp/cache/assets
|
120
|
+
- tmp/cache/webpacker
|
121
|
+
|
122
|
+
- restore_cache:
|
123
|
+
name: Restore Jest Cache
|
124
|
+
keys:
|
125
|
+
- jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
|
126
|
+
- jest-cache-v1-{{ arch }}-{{ .Branch }}-
|
127
|
+
- jest-cache-v1-
|
128
|
+
|
129
|
+
- run:
|
130
|
+
name: JavaScript Unit Tests
|
131
|
+
command: |
|
132
|
+
bin/yarn test --ci --no-watchman \
|
133
|
+
--coverage --coverageDirectory coverage/jest \
|
134
|
+
--coverageReporters text-summary --coverageReporters html \
|
135
|
+
--reporters=jest-junit
|
136
|
+
environment:
|
137
|
+
JEST_JUNIT_OUTPUT_DIR: tmp/reports/jest-results
|
138
|
+
|
139
|
+
- save_cache:
|
140
|
+
name: Save Jest Cache
|
141
|
+
key: jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
|
142
|
+
paths:
|
143
|
+
- tmp/cache/jest
|
144
|
+
|
145
|
+
- run:
|
146
|
+
name: RSpec Tests
|
147
|
+
command: |
|
148
|
+
bin/rails db:schema:load
|
149
|
+
bin/rspec --format RspecJunitFormatter --out tmp/reports/rspec-results.xml --format progress
|
80
150
|
|
81
151
|
# collect reports
|
82
152
|
- store_test_results:
|
83
|
-
path: ./
|
153
|
+
path: ./tmp/reports/
|
84
154
|
- store_artifacts:
|
85
155
|
path: ./coverage
|
86
156
|
lint:
|
@@ -89,7 +159,7 @@ jobs:
|
|
89
159
|
environment:
|
90
160
|
DISABLE_SPRING: 1
|
91
161
|
BUNDLE_GEMFILE: Gemfile.tools
|
92
|
-
BUNDLE_JOBS:
|
162
|
+
BUNDLE_JOBS: 4
|
93
163
|
BUNDLE_RETRY: 3
|
94
164
|
|
95
165
|
steps:
|
@@ -102,7 +172,7 @@ jobs:
|
|
102
172
|
|
103
173
|
- run:
|
104
174
|
name: Install cmake for building pronto dependencies
|
105
|
-
command: sudo apt-get install cmake yamllint python3-setuptools python3-pkg-resources
|
175
|
+
command: sudo apt-get update && sudo apt-get install cmake yamllint python3-setuptools python3-pkg-resources
|
106
176
|
|
107
177
|
- run:
|
108
178
|
name: Install Bundle Dependencies
|
@@ -110,7 +180,7 @@ jobs:
|
|
110
180
|
|
111
181
|
- run:
|
112
182
|
name: Install Node Packages
|
113
|
-
command: bin/yarn
|
183
|
+
command: bin/yarn check || bin/yarn install
|
114
184
|
|
115
185
|
- save_cache:
|
116
186
|
key: v1-tools-dependencies-{{ checksum "Gemfile.tools.lock" }}-{{ checksum "yarn.lock" }}
|
@@ -118,7 +188,7 @@ jobs:
|
|
118
188
|
- ./vendor/bundle-tools
|
119
189
|
- ./node_modules
|
120
190
|
|
121
|
-
- run: bin/lint-
|
191
|
+
- run: bin/lint-pr
|
122
192
|
|
123
193
|
upgrade_tools:
|
124
194
|
docker:
|
@@ -126,7 +196,7 @@ jobs:
|
|
126
196
|
environment:
|
127
197
|
DISABLE_SPRING: 1
|
128
198
|
BUNDLE_GEMFILE: Gemfile.tools
|
129
|
-
BUNDLE_JOBS:
|
199
|
+
BUNDLE_JOBS: 4
|
130
200
|
BUNDLE_RETRY: 3
|
131
201
|
|
132
202
|
steps:
|
@@ -139,10 +209,9 @@ jobs:
|
|
139
209
|
source $BASH_ENV
|
140
210
|
gem install bundler:$BUNDLER_VERSION
|
141
211
|
|
142
|
-
- run: sudo apt-get install cmake
|
212
|
+
- run: sudo apt-get update && sudo apt-get install cmake yamllint python3-setuptools python3-pkg-resources
|
143
213
|
|
144
214
|
- run:
|
145
215
|
name: Run Gemfile tools update in separate branch
|
146
216
|
command: |
|
147
217
|
./bin/circleci-auto_upgrade_tools
|
148
|
-
|
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
version: 1
|
2
3
|
update_configs:
|
3
4
|
# Keep package.json (& lockfiles) up to date as soon as
|
@@ -12,8 +13,7 @@ update_configs:
|
|
12
13
|
- match:
|
13
14
|
dependency_type: production
|
14
15
|
update_type: security
|
15
|
-
version_requirement_updates: off
|
16
|
-
-
|
16
|
+
version_requirement_updates: 'off'
|
17
17
|
- package_manager: ruby:bundler
|
18
18
|
directory: /
|
19
19
|
update_schedule: weekly
|
@@ -29,4 +29,4 @@ update_configs:
|
|
29
29
|
dependency_name: rspec*
|
30
30
|
- match:
|
31
31
|
dependency_name: capybara*
|
32
|
-
version_requirement_updates: off
|
32
|
+
version_requirement_updates: 'off'
|