jt_tools 0.0.5 → 0.0.6
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 +24 -6
- data/bin/test +3 -3
- data/lib/install/.circleci/config.yml +9 -8
- data/lib/install/.reek.yml +8 -13
- data/lib/install/.rubocop.yml +4 -1
- data/lib/install/.simplecov +4 -4
- data/lib/install/Brewfile +6 -5
- data/lib/install/Gemfile.tools +0 -1
- data/lib/install/app.json +15 -12
- data/lib/install/bin/circleci-auto_upgrade_tools +3 -3
- data/lib/install/bin/git-hooks/{post-merge.sample → post-merge} +5 -1
- data/lib/install/bin/git-hooks/{pre-push.sample → pre-push} +0 -0
- data/lib/install/bin/heroku-postdeploy +1 -1
- data/lib/install/config/rails_best_practices.yml +5 -5
- data/lib/jt_tools/version.rb +1 -1
- data/template.rb +18 -5
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4927652633d2fd267f1f2406edc65c94f2dce1f5df0f5114d6a535a50a24cd43
|
4
|
+
data.tar.gz: 4cdfbc258f01edf7c8c68b6d9e8dc8afe08e83927e1100077bbec7944d99a444
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ba9a726ab53e969414f0005f8ccf42fe682f127958a4a39047444830020f481015131cd3b5bbe63d99da13581fb77174ae894f92b54e8d2e932a1e3805adabb
|
7
|
+
data.tar.gz: 67679d017e44950d99ab4bc819edef9983088de1ebb3483e825dc69108fe6b6bbdb403f76f750ab9a98e0dc15c18a8d5b9689965112d943acfdeff4a4a567901
|
data/.circleci/config.yml
CHANGED
@@ -3,7 +3,7 @@ version: 2.1
|
|
3
3
|
jobs:
|
4
4
|
test:
|
5
5
|
docker:
|
6
|
-
- image:
|
6
|
+
- image: cimg/ruby:2.7-node
|
7
7
|
environment:
|
8
8
|
DATABASE_URL: postgresql://ubuntu@127.0.0.1/db_test
|
9
9
|
BUNDLE_JOBS: 4
|
@@ -13,15 +13,33 @@ jobs:
|
|
13
13
|
environment:
|
14
14
|
POSTGRES_USER: ubuntu
|
15
15
|
POSTGRES_DB: db_test
|
16
|
-
parallelism:
|
16
|
+
parallelism: 2
|
17
17
|
steps:
|
18
18
|
- checkout
|
19
|
+
- restore_cache:
|
20
|
+
keys:
|
21
|
+
- rails-v2-{{ arch }}-{{ .Revision }}
|
22
|
+
- rails-v2-{{ arch }}-
|
23
|
+
- rails-v2-
|
24
|
+
|
19
25
|
- run: gem install rails -N --update-sources
|
20
|
-
|
21
|
-
- run:
|
26
|
+
|
27
|
+
- run: sudo apt-get update -qq && sudo apt-get install -yq --no-install-recommends
|
28
|
+
cmake curl yamllint python3-setuptools python3-pkg-resources pkg-config
|
29
|
+
- run: curl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh |
|
30
|
+
sudo bash
|
22
31
|
- run: git config --global user.email "you@example.com" && git config --global user.name "Your Name"
|
23
|
-
|
24
|
-
- run:
|
32
|
+
|
33
|
+
- run: |
|
34
|
+
[[ $CIRCLE_NODE_INDEX == "0" ]] || bin/test
|
35
|
+
- run: |
|
36
|
+
[[ $CIRCLE_NODE_INDEX == "1" ]] || TEST_APP_TEMPLATE=true bin/test
|
37
|
+
|
38
|
+
- save_cache:
|
39
|
+
key: rails-v2-{{ arch }}-{{ .Revision }}
|
40
|
+
paths:
|
41
|
+
- /home/circleci/.rubygems
|
42
|
+
- /home/circleci/.cache
|
25
43
|
|
26
44
|
workflows:
|
27
45
|
test:
|
data/bin/test
CHANGED
@@ -18,7 +18,7 @@ gem uninstall oj || true
|
|
18
18
|
|
19
19
|
if [[ "TEST_APP_TEMPLATE" == "true" ]]
|
20
20
|
then
|
21
|
-
rails new test_tmpl --quiet
|
21
|
+
rails new test_tmpl --quiet --database postgresql
|
22
22
|
cd test_tmpl
|
23
23
|
rails app:template LOCATION=../template.rb
|
24
24
|
else
|
@@ -55,8 +55,8 @@ BUNDLE_GEMFILE=Gemfile.tools bin/bundle exec erblint --config ../../lib/install/
|
|
55
55
|
CIRCLECI=false bin/lint-pr -f text
|
56
56
|
|
57
57
|
echo " => Run git hooks verifications"
|
58
|
-
bin/git-hooks/post-merge
|
59
|
-
CIRCLECI=false bin/git-hooks/pre-push
|
58
|
+
bin/git-hooks/post-merge
|
59
|
+
CIRCLECI=false bin/git-hooks/pre-push
|
60
60
|
|
61
61
|
bin/rubocop --config ../../lib/install/.rubocop.yml --debug --extra-details --display-style-guide --parallel ../../lib
|
62
62
|
node_modules/.bin/eslint --config ../../lib/install/.eslintrc.js --quiet --no-color ../../lib/**/.*.js
|
@@ -64,6 +64,8 @@ jobs:
|
|
64
64
|
- ruby/install-deps:
|
65
65
|
bundler-version: '`cat Gemfile.lock | tail -1 | tr -d " "`'
|
66
66
|
key: v1-dependencies
|
67
|
+
- node/install:
|
68
|
+
node-version: latest
|
67
69
|
- node/install-packages:
|
68
70
|
app-dir: .
|
69
71
|
pkg-manager: yarn
|
@@ -114,11 +116,8 @@ jobs:
|
|
114
116
|
paths:
|
115
117
|
- tmp/cache/jest
|
116
118
|
|
117
|
-
- run:
|
118
|
-
|
119
|
-
command: |
|
120
|
-
bin/rails db:schema:load
|
121
|
-
bin/rspec --format RspecJunitFormatter --out tmp/reports/rspec-results.xml --format progress
|
119
|
+
- run: bin/rails db:schema:load
|
120
|
+
# rails test
|
122
121
|
|
123
122
|
# collect reports
|
124
123
|
- store_test_results:
|
@@ -127,7 +126,7 @@ jobs:
|
|
127
126
|
path: ./coverage
|
128
127
|
lint:
|
129
128
|
docker:
|
130
|
-
- image:
|
129
|
+
- image: cimg/ruby:2.7-node
|
131
130
|
environment:
|
132
131
|
DISABLE_SPRING: 1
|
133
132
|
BUNDLE_GEMFILE: Gemfile.tools
|
@@ -144,7 +143,9 @@ jobs:
|
|
144
143
|
|
145
144
|
- run:
|
146
145
|
name: Install cmake for building pronto dependencies
|
147
|
-
command: sudo apt-get update
|
146
|
+
command: sudo apt-get update -qq &&
|
147
|
+
sudo apt-get install -yq --no-install-recommends
|
148
|
+
cmake yamllint python3-setuptools python3-pkg-resources pkg-config
|
148
149
|
|
149
150
|
- run:
|
150
151
|
name: Install Bundle Dependencies
|
@@ -164,7 +165,7 @@ jobs:
|
|
164
165
|
|
165
166
|
upgrade_tools:
|
166
167
|
docker:
|
167
|
-
- image:
|
168
|
+
- image: cimg/ruby:2.7-node
|
168
169
|
environment:
|
169
170
|
DISABLE_SPRING: 1
|
170
171
|
BUNDLE_GEMFILE: Gemfile.tools
|
data/lib/install/.reek.yml
CHANGED
@@ -2,26 +2,21 @@
|
|
2
2
|
detectors:
|
3
3
|
IrresponsibleModule:
|
4
4
|
enabled: false
|
5
|
+
DuplicateMethodCall:
|
6
|
+
max_calls: 4
|
7
|
+
FeatureEnvy:
|
8
|
+
enabled: false
|
5
9
|
UncommunicativeVariableName:
|
6
10
|
accept:
|
7
11
|
- e
|
12
|
+
- i
|
13
|
+
- v
|
8
14
|
UnusedPrivateMethod:
|
9
15
|
enabled: false
|
10
|
-
|
11
|
-
|
16
|
+
UtilityFunction:
|
17
|
+
enabled: false
|
12
18
|
|
13
19
|
directories:
|
14
20
|
"**/app/controllers/**":
|
15
21
|
InstanceVariableAssumption:
|
16
22
|
enabled: false
|
17
|
-
UtilityFunction:
|
18
|
-
enabled: false
|
19
|
-
"**/app/jobs/**":
|
20
|
-
UtilityFunction:
|
21
|
-
enabled: false
|
22
|
-
"**/app/helpers/**":
|
23
|
-
UtilityFunction:
|
24
|
-
enabled: false
|
25
|
-
"**/spec/**":
|
26
|
-
UtilityFunction:
|
27
|
-
enabled: false
|
data/lib/install/.rubocop.yml
CHANGED
@@ -4,7 +4,7 @@ require:
|
|
4
4
|
- rubocop-rails
|
5
5
|
|
6
6
|
AllCops:
|
7
|
-
TargetRubyVersion: 2.
|
7
|
+
TargetRubyVersion: 2.7
|
8
8
|
Exclude:
|
9
9
|
- 'db/migrate/**/*'
|
10
10
|
- 'db/schema.rb'
|
@@ -48,6 +48,9 @@ Layout/SpaceAroundMethodCallOperator:
|
|
48
48
|
Layout/SpaceInLambdaLiteral:
|
49
49
|
EnforcedStyle: require_space
|
50
50
|
|
51
|
+
Lint/DeprecatedOpenSSLConstant:
|
52
|
+
Enabled: true
|
53
|
+
|
51
54
|
Lint/RaiseException:
|
52
55
|
Enabled: true
|
53
56
|
|
data/lib/install/.simplecov
CHANGED
@@ -10,8 +10,8 @@ else
|
|
10
10
|
maximum_coverage_drop 0.5
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
if ENV['CODECOV_TOKEN']
|
14
|
+
require 'codecov'
|
15
|
+
SimpleCov.formatter = SimpleCov::Formatter::Codecov
|
16
|
+
end
|
17
17
|
end
|
data/lib/install/Brewfile
CHANGED
@@ -5,12 +5,13 @@ cask_args appdir: '/Applications'
|
|
5
5
|
|
6
6
|
tap 'heroku/brew'
|
7
7
|
|
8
|
-
|
9
|
-
brew 'graphicsmagick'
|
8
|
+
brew 'circleci'
|
9
|
+
brew 'graphicsmagick' # For ActiveStorage
|
10
10
|
brew 'heroku'
|
11
|
-
brew 'hub'
|
11
|
+
brew 'hub' # For creating Pull Request from CLI
|
12
|
+
brew 'postgresql'
|
12
13
|
brew 'rbenv'
|
13
14
|
brew 'ruby-build'
|
14
|
-
brew 'vips'
|
15
|
-
brew 'yamllint'
|
15
|
+
brew 'vips' # For ActiveStorage
|
16
|
+
brew 'yamllint' # For Linters
|
16
17
|
brew 'yarn'
|
data/lib/install/Gemfile.tools
CHANGED
data/lib/install/app.json
CHANGED
@@ -4,18 +4,6 @@
|
|
4
4
|
"postdeploy": "bin/heroku-postdeploy"
|
5
5
|
},
|
6
6
|
"env": {
|
7
|
-
"RAILS_MASTER_KEY": {
|
8
|
-
"required": true
|
9
|
-
},
|
10
|
-
"ROLLBAR_ACCESS_TOKEN": {
|
11
|
-
"required": true
|
12
|
-
},
|
13
|
-
"ROLLBAR_ENDPOINT": {
|
14
|
-
"required": true
|
15
|
-
},
|
16
|
-
"SECRET_KEY_BASE": {
|
17
|
-
"generator": "secret"
|
18
|
-
},
|
19
7
|
"BUNDLE_WITHOUT": "development:test:production",
|
20
8
|
"DISABLE_DATABASE_ENVIRONMENT_CHECK": "1",
|
21
9
|
"LANG": "en_US.UTF-8",
|
@@ -24,10 +12,22 @@
|
|
24
12
|
"RACK_ENV": "staging",
|
25
13
|
"RAILS_ENV": "staging",
|
26
14
|
"RAILS_LOG_TO_STDOUT": "enabled",
|
15
|
+
"RAILS_MASTER_KEY": {
|
16
|
+
"required": true
|
17
|
+
},
|
27
18
|
"RAILS_MAX_THREADS": "5",
|
28
19
|
"RAILS_SERVE_STATIC_FILES": "enabled",
|
29
20
|
"REDIS_PROVIDER": "REDISTOGO_URL",
|
21
|
+
"ROLLBAR_ACCESS_TOKEN": {
|
22
|
+
"required": true
|
23
|
+
},
|
24
|
+
"ROLLBAR_ENDPOINT": {
|
25
|
+
"required": true
|
26
|
+
},
|
30
27
|
"ROLLBAR_ENV": "staging",
|
28
|
+
"SECRET_KEY_BASE": {
|
29
|
+
"generator": "secret"
|
30
|
+
},
|
31
31
|
"SIDEKIQ_CONCURRENCY": "5",
|
32
32
|
"WEB_CONCURRENCY": "2"
|
33
33
|
},
|
@@ -38,6 +38,9 @@
|
|
38
38
|
"redistogo:nano"
|
39
39
|
],
|
40
40
|
"buildpacks": [
|
41
|
+
{
|
42
|
+
"url": "heroku/nodejs"
|
43
|
+
},
|
41
44
|
{
|
42
45
|
"url": "heroku/ruby"
|
43
46
|
}
|
@@ -4,7 +4,7 @@ set -e
|
|
4
4
|
|
5
5
|
echo "-----Create and switch to new branch-----"
|
6
6
|
|
7
|
-
current_date
|
7
|
+
current_date=$(date +"%Y%m%d%H%M")
|
8
8
|
new_branch_name="auto-upgrade-tools-dependencies-${current_date}"
|
9
9
|
git checkout -b $new_branch_name
|
10
10
|
|
@@ -17,11 +17,11 @@ if bin/tools-upgrade; then
|
|
17
17
|
git config user.email "circleci.bot@example.com"
|
18
18
|
|
19
19
|
git commit -am "Upgrades Gemfile.tools dependencies"
|
20
|
-
git push https://$GITHUB_TOKEN@github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME.git -f
|
20
|
+
git push "https://$GITHUB_TOKEN@github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME.git" -f
|
21
21
|
|
22
22
|
curl -X POST \
|
23
23
|
-H "Authorization: token ${GITHUB_TOKEN}" \
|
24
|
-
-d '{"title":"
|
24
|
+
-d '{"title":"Upgrades tools dependencies","base":"master","head":"'$CIRCLE_PROJECT_USERNAME':'$new_branch_name'"}' \
|
25
25
|
https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/pulls
|
26
26
|
exit 0
|
27
27
|
else
|
File without changes
|
@@ -11,11 +11,11 @@ KeepFindersOnTheirOwnModelCheck: {}
|
|
11
11
|
LawOfDemeterCheck: {}
|
12
12
|
# LongLineCheck: { max_line_length: 80 }
|
13
13
|
MoveCodeIntoControllerCheck: {}
|
14
|
-
MoveCodeIntoHelperCheck: { array_count:
|
15
|
-
MoveCodeIntoModelCheck: { use_count:
|
14
|
+
MoveCodeIntoHelperCheck: { array_count: 10 }
|
15
|
+
MoveCodeIntoModelCheck: { use_count: 10 }
|
16
16
|
MoveFinderToNamedScopeCheck: {}
|
17
|
-
MoveModelLogicIntoModelCheck: { use_count:
|
18
|
-
NeedlessDeepNestingCheck: { nested_count:
|
17
|
+
MoveModelLogicIntoModelCheck: { use_count: 10 }
|
18
|
+
NeedlessDeepNestingCheck: { nested_count: 5 }
|
19
19
|
NotRescueExceptionCheck: {}
|
20
20
|
NotUseDefaultRouteCheck: {}
|
21
21
|
NotUseTimeAgoInWordsCheck: {}
|
@@ -27,7 +27,7 @@ RemoveTrailingWhitespaceCheck: {}
|
|
27
27
|
# RemoveUnusedMethodsInControllersCheck: { except_methods: [] }
|
28
28
|
# RemoveUnusedMethodsInHelpersCheck: { except_methods: [] }
|
29
29
|
# RemoveUnusedMethodsInModelsCheck: { except_methods: [] }
|
30
|
-
ReplaceComplexCreationWithFactoryMethodCheck: { attribute_assignment_count:
|
30
|
+
ReplaceComplexCreationWithFactoryMethodCheck: { attribute_assignment_count: 5 }
|
31
31
|
ReplaceInstanceVariableWithLocalVariableCheck: {}
|
32
32
|
RestrictAutoGeneratedRoutesCheck: {}
|
33
33
|
SimplifyRenderInControllersCheck: {}
|
data/lib/jt_tools/version.rb
CHANGED
data/template.rb
CHANGED
@@ -37,7 +37,7 @@ chmod 'bin', 0o755 & ~File.umask, verbose: false
|
|
37
37
|
say '=> Copying tools gemfile'
|
38
38
|
copy_file 'lib/install/Gemfile.tools', 'Gemfile.tools'
|
39
39
|
|
40
|
-
run 'yarn add -D eslint'
|
40
|
+
run 'yarn add -D eslint jest-junit'
|
41
41
|
|
42
42
|
say 'Copying lint configurations'
|
43
43
|
copy_file 'lib/install/.better-html.yml', '.better-html.yml'
|
@@ -80,6 +80,11 @@ if File.read('Gemfile').include? 'rspec'
|
|
80
80
|
"require 'simplecov' if ENV['COVERAGE']\n",
|
81
81
|
after: /\A/
|
82
82
|
)
|
83
|
+
insert_into_file(
|
84
|
+
'.circleci/config.yml',
|
85
|
+
"\n" + ' - run: bin/rspec --format RspecJunitFormatter --out tmp/reports/rspec-results.xml --format progress',
|
86
|
+
after: '# rails test'
|
87
|
+
)
|
83
88
|
else
|
84
89
|
gem 'minitest-ci', require: false, group: :test
|
85
90
|
insert_into_file(
|
@@ -87,6 +92,11 @@ else
|
|
87
92
|
"require 'simplecov' if ENV['COVERAGE']\n",
|
88
93
|
after: /\A/
|
89
94
|
)
|
95
|
+
insert_into_file(
|
96
|
+
'.circleci/config.yml',
|
97
|
+
"\n" + ' - run: bin/rails test "test/**/*_test.rb"',
|
98
|
+
after: '# rails test'
|
99
|
+
)
|
90
100
|
end
|
91
101
|
|
92
102
|
directory 'lib/install/.dependabot', '.dependabot'
|
@@ -141,6 +151,8 @@ if File.exist?('config/environments/staging.rb')
|
|
141
151
|
environment(r7insight_config, env: 'staging')
|
142
152
|
end
|
143
153
|
|
154
|
+
gem 'connection_pool'
|
155
|
+
|
144
156
|
say '=> Set up Memcachier'
|
145
157
|
memcachier_config = <<-CODE
|
146
158
|
if ENV["MEMCACHIER_SERVERS"]
|
@@ -154,7 +166,9 @@ memcachier_config = <<-CODE
|
|
154
166
|
|
155
167
|
CODE
|
156
168
|
environment(memcachier_config, env: 'production')
|
157
|
-
|
169
|
+
if File.exist?('config/environments/staging.rb')
|
170
|
+
environment(memcachier_config, env: 'staging')
|
171
|
+
end
|
158
172
|
|
159
173
|
|
160
174
|
after_bundle do
|
@@ -168,9 +182,8 @@ say '**************************************************************************'
|
|
168
182
|
say ''
|
169
183
|
say '1. Recommended Heroku Addons: Mailtrap, Rollbar, Cloudinary'
|
170
184
|
say ''
|
171
|
-
say '2. Setup Git Hooks to auto-check code and cleanup staled branches'
|
172
|
-
say '$ `
|
173
|
-
say '$ `cp bin/git-hooks/post-merge.sample bin/git-hooks/post-merge`'
|
185
|
+
say '2. Setup Git Hooks to auto-check code and cleanup staled branches:'
|
186
|
+
say '$ `git config core.hooksPath bin/git-hooks`'
|
174
187
|
say ''
|
175
188
|
say '3. Please, set CODECOV_TOKEN, GITHUB_TOKEN and PRONTO_GITHUB_ACCESS_TOKEN'
|
176
189
|
say 'environment variables in CircleCI and your local env'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jt_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Keen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -62,8 +62,8 @@ files:
|
|
62
62
|
- lib/install/Procfile
|
63
63
|
- lib/install/app.json
|
64
64
|
- lib/install/bin/circleci-auto_upgrade_tools
|
65
|
-
- lib/install/bin/git-hooks/post-merge
|
66
|
-
- lib/install/bin/git-hooks/pre-push
|
65
|
+
- lib/install/bin/git-hooks/post-merge
|
66
|
+
- lib/install/bin/git-hooks/pre-push
|
67
67
|
- lib/install/bin/heroku-postdeploy
|
68
68
|
- lib/install/bin/heroku-release
|
69
69
|
- lib/install/bin/lint-pr
|