jt_tools 0.0.10 → 0.0.15

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15859809ddca0429ae3711dd7ef6d6284af2cf89cd79b3ec7c42b7ed360856c2
4
- data.tar.gz: 034d908682932f3bfa5ae314fa2547f50bbad2cbd8ec2d22f91b37585ea46800
3
+ metadata.gz: 546f1c903d3ee920591bf6c3fd5d622f9a38714762148f05fbf1c221862b34fd
4
+ data.tar.gz: d719294b0c1573c574622ee66612650c7d93d270c83ceb1e9565e7a9f7a00945
5
5
  SHA512:
6
- metadata.gz: 54e8202ef39e94a60a54801567c05c3d3d0ada201336f8c592a8b32901c2caa896b58d0fc29865bd688e5026f55132d9d1b1178aaa019d79cf139e9cf73feda0
7
- data.tar.gz: c5f0c683579a0a927e39874d753283a1d51874bea645323ae7baff5988e1224ebff1a9aaa06a4cc908ef78cc4a84c2d5c43ea95af0fae47c2bac9911c0846b2a
6
+ metadata.gz: 0feb0f9ef79b73f11d91c3c043935cc2f68de2a6c992f0c85228d78ee429fabf85347bf6bd3c05b65371a4b3e4eae53036d4643174558e80651cd68f492eae8f
7
+ data.tar.gz: 4652b8b1f95a35011ea21085cd34bea3a39bd466ec4974f7292acf3cd16ed2b4f5ad5c1ce8abb2a3c761e56db6ee027e884cc6bb591c9273e638090eb340c314
@@ -3,11 +3,13 @@ version: 2.1
3
3
  jobs:
4
4
  test:
5
5
  docker:
6
- - image: cimg/ruby:2.7-node
6
+ - image: cimg/ruby:3.0-node
7
7
  environment:
8
8
  DATABASE_URL: postgresql://ubuntu@127.0.0.1/db_test
9
+ BUNDLE_PATH: /home/circleci/project/vendor/bundle
9
10
  BUNDLE_JOBS: 4
10
11
  BUNDLE_RETRY: 3
12
+ DEBIAN_FRONTEND: noninteractive
11
13
 
12
14
  - image: circleci/postgres:alpine-ram
13
15
  environment:
@@ -22,22 +24,15 @@ jobs:
22
24
  - rails-v2-{{ arch }}-
23
25
  - rails-v2-
24
26
 
25
- - run: gem install rails -N --update-sources
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
31
- - run: git config --global user.email "you@example.com" && git config --global user.name "Your Name"
32
-
33
27
  - run: |
34
- [[ $CIRCLE_NODE_INDEX == "0" ]] || bin/test
28
+ [[ $CIRCLE_NODE_INDEX == "0" ]] || bin/ci-test
35
29
  - run: |
36
- [[ $CIRCLE_NODE_INDEX == "1" ]] || TEST_APP_TEMPLATE=true bin/test
30
+ [[ $CIRCLE_NODE_INDEX == "1" ]] || TEST_APP_TEMPLATE=true bin/ci-test
37
31
 
38
32
  - save_cache:
39
33
  key: rails-v2-{{ arch }}-{{ .Revision }}
40
34
  paths:
35
+ - /home/circleci/project/vendor/bundle
41
36
  - /home/circleci/.rubygems
42
37
  - /home/circleci/.cache
43
38
 
@@ -55,4 +50,8 @@ workflows:
55
50
  only:
56
51
  - master
57
52
  jobs:
58
- - test
53
+ - hold:
54
+ type: approval
55
+ - test:
56
+ requires:
57
+ - hold
@@ -0,0 +1,11 @@
1
+ *.gemspec diff=ruby
2
+ *.rake diff=ruby
3
+ *.rb diff=ruby
4
+ *.js diff=javascript
5
+
6
+ db/schema.rb merge=ours diff=ruby linguist-generated
7
+ yarn.lock merge=ours linguist-generated
8
+ Gemfile.lock merge=ours linguist-generated
9
+
10
+ vendor/* linguist-vendored
11
+ bin/* linguist-generated
@@ -0,0 +1,84 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ pull_request_target:
9
+ branches:
10
+ - master
11
+
12
+ env:
13
+ DEBIAN_FRONTEND: noninteractive
14
+ CIRCLECI: true
15
+
16
+ jobs:
17
+ lint:
18
+ name: Lint
19
+ runs-on: ubuntu-latest
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v2
24
+
25
+ - name: Set up Ruby
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: '3.0'
29
+ bundler-cache: true
30
+
31
+ - name: Run standard Ruby linter
32
+ run: bundle exec rubocop -P -c ./.rubocop.yml ./
33
+
34
+ test:
35
+ name: Functional testing
36
+ env:
37
+ DATABASE_URL: postgresql://postgres_user:postgres@localhost:5432/postgres_db
38
+
39
+ strategy:
40
+ matrix:
41
+ os-version: [ 'ubuntu-20.04', 'ubuntu-latest' ]
42
+ fail-fast: true
43
+
44
+ runs-on: ${{ matrix.os-version }}
45
+
46
+ services:
47
+ postgres:
48
+ image: postgres # circleci/postgres:alpine-ram
49
+ env:
50
+ POSTGRES_DB: postgres_db
51
+ POSTGRES_USER: postgres_user
52
+ POSTGRES_PASSWORD: postgres
53
+ ports:
54
+ - 5432:5432
55
+ options: >-
56
+ --health-cmd pg_isready
57
+ --health-interval 10s
58
+ --health-timeout 5s
59
+ --health-retries 5
60
+
61
+ steps:
62
+ - name: Checkout code
63
+ uses: actions/checkout@v2
64
+
65
+ - name: Install PostgreSQL client
66
+ run: sudo apt-get -yqq install libpq-dev
67
+
68
+ - name: Set up Ruby
69
+ uses: ruby/setup-ruby@v1
70
+ with:
71
+ ruby-version: '3.0'
72
+ bundler-cache: true
73
+
74
+ - name: Use Node.js
75
+ uses: actions/setup-node@v1
76
+ with:
77
+ node-version: 14
78
+
79
+ - name: Disable Linuxbrew
80
+ run: |
81
+ [[ $(uname -s) == "Linux"* ]] && sudo rm -rf $(which brew)
82
+
83
+ - name: Run Tests
84
+ run: bin/ci-test
@@ -0,0 +1,11 @@
1
+ ---
2
+ inherit_from: lib/install/.rubocop.yml
3
+
4
+ AllCops:
5
+ NewCops: enable
6
+ TargetRubyVersion: 3.0
7
+
8
+ Exclude:
9
+ - 'bin/**/*'
10
+ - 'template.rb'
11
+ - 'vendor/**/*'
@@ -2,9 +2,13 @@ default_ignores: false
2
2
  #fix: true
3
3
  format: progress
4
4
  parallel: true
5
- ruby_version: 2.7.1
5
+ ruby_version: 3.0
6
6
 
7
7
  ignore:
8
+ - '**/*':
9
+ - Standard/SemanticBlocks
10
+ - 'db/schema.rb'
8
11
  - 'test/**/*':
9
12
  - Layout/AlignHash
10
13
  - 'tmp/**/*'
14
+ - 'vendor/**/*'
data/Gemfile CHANGED
@@ -1,7 +1,14 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ ruby '3.0.0'
2
6
 
3
7
  # Specify your gem's dependencies in jt_tools.gemspec
4
8
  gemspec
5
9
 
6
- gem "standard"
7
- gem "bump"
10
+ gem 'bump'
11
+ gem 'rubocop-minitest', require: false
12
+ gem 'rubocop-performance', require: false
13
+ gem 'rubocop-rails', require: false
14
+ gem 'standard', '>= 0.4.7', require: false
data/README.md CHANGED
@@ -20,10 +20,10 @@ Pre-setup for service
20
20
 
21
21
  * [GitHub](https://github.com)
22
22
  * [Heroku](https://jtway.co/make-master-stable-again-b15c9ff3b129) (Heroku Reviews Apps)
23
+ * [MemCachier](https://www.memcachier.com/)
23
24
  * [CircleCI](https://circleci.com/)
24
25
  * [Codecov](https://codecov.io/) and [Simplecov](https://github.com/colszowka/simplecov)
25
26
  * [Dependabot](https://dependabot.com/)
26
- * [MemCachier](https://www.memcachier.com/)
27
27
  * Code Styles:
28
28
  * [Pronto](https://jtway.co/effortless-code-review-for-pull-request-changes-241206b1cb04)
29
29
  * [Rubocop](https://github.com/rubocop-hq/rubocop)
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rake/testtask"
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
5
 
6
6
  Rake::TestTask.new(:test) do |t|
7
- t.libs << "test"
8
- t.libs << "lib"
9
- t.test_files = FileList["test/**/*_test.rb"]
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/*_test.rb']
10
10
  end
11
11
 
12
12
  task default: :test
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -eo pipefail
4
+
5
+ gem install rails -N --update-sources
6
+
7
+ sudo apt-get update -qq && \
8
+ sudo apt-get install -yq --no-install-recommends \
9
+ cmake curl yamllint python3-setuptools python3-pkg-resources pkg-config
10
+ curl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | sudo bash
11
+ git config --global user.email "you@example.com" && git config --global user.name "Your Name"
12
+
13
+ bin/test
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -eo pipefail
4
+
5
+ yamllint --config-file lib/install/.yamllint.yml --strict .*/*.yml
6
+ yamllint --config-file lib/install/.yamllint.yml --strict ./*.yml
7
+ yamllint --config-file lib/install/.yamllint.yml --strict lib/**/.*.yml
8
+ yamllint --config-file lib/install/.yamllint.yml --strict ./**/.*/*.yml
9
+
10
+ bundle exec rubocop -P
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rubocop' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require 'pathname'
12
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path('bundle', __dir__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require 'rubygems'
27
+ require 'bundler/setup'
28
+
29
+ load Gem.bin_path('rubocop', 'rubocop')
data/bin/test CHANGED
@@ -3,11 +3,8 @@
3
3
  set -eo pipefail
4
4
 
5
5
  echo ""
6
- echo "== Yamllint: =="
7
- yamllint --config-file lib/install/.yamllint.yml --strict .*/*.yml
8
- yamllint --config-file lib/install/.yamllint.yml --strict *.yml
9
- yamllint --config-file lib/install/.yamllint.yml --strict lib/**/.*.yml
10
- yamllint --config-file lib/install/.yamllint.yml --strict **/.*/*.yml
6
+ echo "== Lint: =="
7
+ bin/lint
11
8
 
12
9
  mkdir -p tmp/
13
10
 
@@ -15,15 +12,17 @@ cd tmp
15
12
  rm -rf test_tmpl
16
13
 
17
14
  # Test installation of missed gems on applying template
18
- gem uninstall oj || true
15
+ gem uninstall --force --silent oj || true
19
16
 
20
17
  if [[ "$TEST_APP_TEMPLATE" == "true" ]]
21
18
  then
19
+ echo "Adds template to existed app"
22
20
  rails new test_tmpl --quiet --database postgresql
23
21
  cd test_tmpl
24
22
  bin/setup
25
23
  bin/rails app:template LOCATION="../../template.rb"
26
24
  else
25
+ echo "Generate app with template"
27
26
  rails new test_tmpl --template ../template.rb --quiet --database postgresql
28
27
  cd test_tmpl
29
28
  bin/setup
@@ -67,3 +66,9 @@ CIRCLECI=false bin/git-hooks/pre-push
67
66
 
68
67
  bin/rubocop --config ../../lib/install/.rubocop.yml --debug --extra-details --display-style-guide --parallel ../../lib
69
68
  node_modules/.bin/eslint --config ../../lib/install/.eslintrc.js --quiet --no-color ../../lib/**/.*.js
69
+
70
+ # For local run only
71
+ if [[ -z "$CIRCLECI" ]]
72
+ then
73
+ circleci local execute --job test --config .circleci/config.yml
74
+ fi
@@ -1,25 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path("lib", __dir__)
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require "jt_tools/version"
5
+ require 'jt_tools/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "jt_tools"
8
+ spec.name = 'jt_tools'
9
9
  spec.version = JtTools::VERSION
10
- spec.authors = ["Paul Keen"]
11
- spec.email = ["pftg@users.noreply.github.com"]
10
+ spec.authors = ['Paul Keen']
11
+ spec.email = ['pftg@users.noreply.github.com']
12
12
 
13
- spec.summary = "Setup development scripts to manage code base effectively"
14
- spec.description = "Helpful scripts to run linters locally and on CI"
15
- spec.homepage = "https://jtway.co"
16
- spec.license = "MIT"
13
+ spec.summary = 'Setup development scripts to manage code base effectively'
14
+ spec.description = 'Helpful scripts to run linters locally and on CI'
15
+ spec.homepage = 'https://jtway.co'
16
+ spec.license = 'MIT'
17
17
 
18
- spec.metadata["homepage_uri"] = spec.homepage
19
- spec.metadata["source_code_uri"] = "https://github.com/jetthoughts/jt-tools/"
20
- spec.metadata["changelog_uri"] = "https://github.com/jetthoughts/jt-tools/"
18
+ spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.metadata['source_code_uri'] = 'https://github.com/jetthoughts/jt-tools/'
20
+ spec.metadata['changelog_uri'] = 'https://github.com/jetthoughts/jt-tools/'
21
21
 
22
- spec.add_dependency "railties", ">= 4.2"
22
+ spec.add_dependency 'railties', '>= 4.2'
23
23
 
24
24
  # Specify which files should be added to the gem when it is released.
25
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -27,5 +27,5 @@
27
27
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
28
  end
29
29
 
30
- spec.require_paths = ["lib"]
30
+ spec.require_paths = ['lib']
31
31
  end
@@ -7,8 +7,9 @@
7
7
  version: 2.1
8
8
 
9
9
  orbs:
10
- ruby: circleci/ruby@1.0.5
11
- node: circleci/node@3.0.1
10
+ browser-tools: circleci/browser-tools@1.1.1
11
+ node: circleci/node@4
12
+ ruby: circleci/ruby@1
12
13
 
13
14
  workflows:
14
15
  version: 2
@@ -38,7 +39,7 @@ jobs:
38
39
  test:
39
40
  docker:
40
41
  # specify the version you desire here
41
- - image: circleci/ruby:2.7-node-browsers
42
+ - image: cimg/ruby:3.0-browsers
42
43
  environment:
43
44
  BUNDLE_GEMFILE: Gemfile
44
45
  BUNDLE_PATH: vendor/bundle
@@ -61,6 +62,8 @@ jobs:
61
62
 
62
63
  steps:
63
64
  - checkout
65
+ - browser-tools/install-chrome
66
+ - browser-tools/install-chromedriver
64
67
 
65
68
  - restore_cache:
66
69
  name: Restore Bundler Cache between Branches
@@ -74,10 +77,14 @@ jobs:
74
77
  with-cache: false
75
78
  path: './vendor/bundle'
76
79
 
80
+ - run: bundle exec bootsnap precompile --gemfile app/ lib/
81
+ - run: gem install spring
82
+
77
83
  - save_cache:
78
84
  name: Save Bundler Cache between Branches
79
85
  paths:
80
- - ./vendor/bundle
86
+ - vendor/bundle
87
+ - tmp/cache/bootsnap-compile-cache
81
88
  key: v1-dependencies-{{ checksum "Gemfile.lock" }}
82
89
 
83
90
  - node/install-packages:
@@ -106,43 +113,45 @@ jobs:
106
113
  - tmp/cache/assets
107
114
  - tmp/cache/webpacker
108
115
 
109
- - restore_cache:
110
- name: Restore Jest Cache
111
- keys:
112
- - jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
113
- - jest-cache-v1-{{ arch }}-{{ .Branch }}-
114
- - jest-cache-v1-
115
-
116
- - run:
117
- name: JavaScript Unit Tests
118
- command: |
119
- bin/yarn test --ci --no-watchman \
120
- --coverage --coverageDirectory coverage/jest \
121
- --coverageReporters text-summary --coverageReporters html \
122
- --reporters=jest-junit
123
- environment:
124
- JEST_JUNIT_OUTPUT_DIR: tmp/reports/jest-results
125
-
126
- - save_cache:
127
- name: Save Jest Cache
128
- key: jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
129
- paths:
130
- - tmp/cache/jest
131
-
132
- - run: bin/rails db:schema:load
133
- # rails test
134
-
135
- # collect reports
116
+ # Run JS Tests
117
+ # - restore_cache:
118
+ # name: Restore Jest Cache
119
+ # keys:
120
+ # - jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
121
+ # - jest-cache-v1-{{ arch }}-{{ .Branch }}-
122
+ # - jest-cache-v1-
123
+ #
124
+ # - run:
125
+ # name: JavaScript Unit Tests
126
+ # command: |
127
+ # bin/yarn test --ci --no-watchman \
128
+ # --coverage --coverageDirectory coverage/jest \
129
+ # --coverageReporters text-summary --coverageReporters html \
130
+ # --reporters=jest-junit
131
+ # environment:
132
+ # JEST_JUNIT_OUTPUT_DIR: tmp/reports/jest-results
133
+ #
134
+ # - save_cache:
135
+ # name: Save Jest Cache
136
+ # key: jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
137
+ # paths:
138
+ # - tmp/cache/jest
139
+
140
+ - run: bin/rails db:test:prepare
141
+ - run: bin/rails test "test/**/*_test.rb"
142
+
143
+ # Collect reports
136
144
  - store_test_results:
137
145
  path: ./tmp/reports/
138
146
  - store_artifacts:
139
147
  path: ./coverage
140
148
  lint:
141
149
  docker:
142
- - image: cimg/ruby:2.7-node
150
+ - image: cimg/ruby:3.0-node
143
151
  environment:
144
152
  DISABLE_SPRING: 1
145
153
  BUNDLE_GEMFILE: Gemfile.tools
154
+ BUNDLE_PATH: vendor/bundle-tools
146
155
  BUNDLE_JOBS: 4
147
156
  BUNDLE_RETRY: 3
148
157
 
@@ -162,7 +171,7 @@ jobs:
162
171
 
163
172
  - run:
164
173
  name: Install Bundle Dependencies
165
- command: bin/bundle check --path vendor/bundle-tools || bin/bundle install --path vendor/bundle-tools
174
+ command: bin/bundle check || bin/bundle install
166
175
 
167
176
  - run:
168
177
  name: Install Node Packages
@@ -178,7 +187,7 @@ jobs:
178
187
 
179
188
  upgrade_tools:
180
189
  docker:
181
- - image: cimg/ruby:2.7-node
190
+ - image: cimg/ruby:3.0-node
182
191
  environment:
183
192
  DISABLE_SPRING: 1
184
193
  BUNDLE_GEMFILE: Gemfile.tools