Skip to content

Commit

Permalink
Generates Ruby on Rails Application with Vue.js
Browse files Browse the repository at this point in the history
  • Loading branch information
pftg committed Apr 12, 2021
0 parents commit 2f3cbbe
Show file tree
Hide file tree
Showing 136 changed files with 15,371 additions and 0 deletions.
Empty file added .better-html.yml
Empty file.
1 change: 1 addition & 0 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
defaults
225 changes: 225 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
# Ruby CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
#
---

version: 2.1

orbs:
browser-tools: circleci/browser-tools@1
node: circleci/node@4
ruby: circleci/ruby@1

workflows:
version: 2
commit:
jobs:
- test:
requires:
- lint
- lint:
filters:
branches:
ignore:
- master
- production
- staging
merge:
jobs:
- test:
filters:
branches:
only:
- master
- production
- staging

auto_upgrade_tools:
triggers:
- schedule:
cron: "0 10 1 * *"
filters:
branches:
only:
- master
jobs:
- upgrade_tools

jobs:
test:
docker:
# specify the version you desire here
- image: cimg/ruby:3.0-browsers
environment:
BUNDLE_GEMFILE: Gemfile
BUNDLE_PATH: vendor/bundle
BUNDLE_JOBS: 4
BUNDLE_RETRY: 3
BUNDLE_WITHOUT: "production:staging:development"
COVERAGE: true
DATABASE_URL: postgresql://ubuntu@localhost/db
NODE_ENV: test
RACK_ENV: test
RAILS_ENV: test

# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
- image: circleci/postgres:alpine-ram
environment:
POSTGRES_USER: ubuntu
POSTGRES_DB: db

steps:
- checkout
- browser-tools/install-chrome
- browser-tools/install-chromedriver

- restore_cache:
name: Restore Bundler Cache between Branches
keys:
- v1-dependencies-{{ checksum "Gemfile.lock" }}
- v1-dependencies-

- ruby/install-deps:
bundler-version: '`cat Gemfile.lock | tail -1 | tr -d " "`'
key: v1-dependencies
with-cache: false
path: './vendor/bundle'

- run: bundle exec bootsnap precompile --gemfile app/ lib/
- run: gem install spring

- save_cache:
name: Save Bundler Cache between Branches
paths:
- vendor/bundle
- tmp/cache/bootsnap-compile-cache
key: v1-dependencies-{{ checksum "Gemfile.lock" }}

- node/install-packages:
app-dir: .
pkg-manager: yarn
cache-version: v1

- restore_cache:
keys:
- asset-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ .Environment.CIRCLE_SHA1 }}
- asset-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-
- asset-cache-v1-{{ arch }}-{{ .Branch }}-
- asset-cache-v1-{{ arch }}-master-

- run:
name: Precompile Assets
command: |
bin/rails assets:precompile
- save_cache:
key: asset-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ .Environment.CIRCLE_SHA1 }}
paths:
- public/packs-test
- tmp/cache/assets
- tmp/cache/webpacker

# Run JS Tests
# - restore_cache:
# name: Restore Jest Cache
# keys:
# - jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
# - jest-cache-v1-{{ arch }}-{{ .Branch }}-
# - jest-cache-v1-
#
# - run:
# name: JavaScript Unit Tests
# command: |
# bin/yarn test --ci --no-watchman \
# --coverage --coverageDirectory coverage/jest \
# --coverageReporters text-summary --coverageReporters html \
# --reporters=jest-junit
# environment:
# JEST_JUNIT_OUTPUT_DIR: tmp/reports/jest-results
#
# - save_cache:
# name: Save Jest Cache
# key: jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
# paths:
# - tmp/cache/jest

- run: bin/rails db:test:prepare
- run: bin/rails test "test/**/*_test.rb"

# Collect reports
- store_test_results:
path: ./tmp/reports/
- store_artifacts:
path: ./coverage
- store_artifacts:
path: ./tmp/screenshots
lint:
docker:
- image: cimg/ruby:3.0-node
environment:
DISABLE_SPRING: 1
BUNDLE_GEMFILE: Gemfile.tools
BUNDLE_PATH: vendor/bundle-tools
BUNDLE_JOBS: 4
BUNDLE_RETRY: 3

steps:
- checkout

- restore_cache:
keys:
- v1-tools-dependencies-{{ checksum "Gemfile.tools.lock" }}-{{ checksum "yarn.lock" }}
- v1-tools-dependencies-

- run:
name: Install cmake for building pronto dependencies
command: sudo apt-get update -qq
&& sudo apt-get install -yq --no-install-recommends
cmake yamllint python3-setuptools python3-pkg-resources pkg-config

- run:
name: Install Bundle Dependencies
command: bin/bundle check || bin/bundle install

- run:
name: Install Node Packages
command: bin/yarn check || bin/yarn install

- save_cache:
key: v1-tools-dependencies-{{ checksum "Gemfile.tools.lock" }}-{{ checksum "yarn.lock" }}
paths:
- ./vendor/bundle-tools
- ./node_modules

- run: bin/lint-pr

upgrade_tools:
docker:
- image: cimg/ruby:3.0-node
environment:
DISABLE_SPRING: 1
BUNDLE_GEMFILE: Gemfile.tools
BUNDLE_JOBS: 4
BUNDLE_RETRY: 3

steps:
- checkout

- run:
name: Install Bundler
command: |
echo 'export BUNDLER_VERSION=$(cat Gemfile.tools.lock | tail -1 | tr -d " ")' >> $BASH_ENV
source $BASH_ENV
gem install bundler:$BUNDLER_VERSION
- run:
name: Install System Dependencies
command: sudo apt-get update
&& sudo apt-get install cmake yamllint python3-setuptools python3-pkg-resources pkg-config

- run:
name: Run Gemfile tools update in separate branch
command: ./bin/circleci-auto_upgrade_tools
70 changes: 70 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 113
tab_width = 2
trim_trailing_whitespace = true

[*.css]
ij_continuation_indent_size = 2
ij_css_align_closing_brace_with_properties = false
ij_css_blank_lines_around_nested_selector = 1
ij_css_blank_lines_between_blocks = 1
ij_css_keep_blank_lines_in_code = 2
ij_css_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow

[*.haml]
tab_width = 2
ij_haml_keep_indents_on_empty_lines = false

[*.properties]

[*.scss]
ij_continuation_indent_size = 2
ij_scss_align_closing_brace_with_properties = false
ij_scss_blank_lines_around_nested_selector = 1
ij_scss_blank_lines_between_blocks = 1

[.editorconfig]

[{*.js,*.cjs}]
ij_continuation_indent_size = 2

[{*.sht,*.html,*.shtm,*.shtml,*.htm}]
ij_continuation_indent_size = 2

[{*.xslt,*.rng,*.ant,*.xsl,*.xsd,*.xul,*.jhm,*.xml,*.tld,*.fxml,*.wsdl,*.jrxml,*.jnlp}]
tab_width = 2

[{*.yml,*.yaml}]
tab_width = 2

[{.babelrc,.stylelintrc,.eslintrc,jest.config,.resultset.json.lock,bowerrc,*.json,*.jsb3,*.jsb2}]
tab_width = 2

[{Podfile,Brewfile,cucumber,yarn,spork,Gemfile.tools,rake,.simplecov,rcov,rails,spec,capfile,gemfile,rakefile,guardfile,isolate,vagrantfile,*.gemspec,*.jbuilder,*.thor,*.rbw,*.ru,*.rb,*.rake}]
ij_ruby_align_group_field_declarations = false
ij_ruby_align_multiline_parameters = false
ij_ruby_blank_lines_around_method = 1
ij_ruby_chain_calls_alignment = 0
ij_ruby_convert_brace_block_by_enter = true
ij_ruby_force_newlines_around_visibility_mods = true
ij_ruby_indent_private_methods = false
ij_ruby_indent_protected_methods = false
ij_ruby_indent_public_methods = false
ij_ruby_indent_when_cases = false
ij_ruby_keep_blank_lines_in_declarations = 2
ij_ruby_keep_line_breaks = true
ij_ruby_parentheses_around_method_arguments = true
ij_ruby_spaces_around_assignment_operators = true
ij_ruby_spaces_around_hashrocket = true
ij_ruby_spaces_around_other_operators = true
ij_ruby_spaces_around_range_operators = false
ij_ruby_spaces_around_relational_operators = true
ij_ruby_spaces_within_array_initializer_braces = true
ij_ruby_spaces_within_braces = true
26 changes: 26 additions & 0 deletions .erb-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
linters:
ErbSafety:
enabled: true
better_html_config: .better-html.yml
Rubocop:
enabled: true
rubocop_config:
inherit_from:
- .rubocop.yml
Layout/InitialIndentation:
Enabled: false
Layout/LineLength:
Enabled: false
Layout/TrailingEmptyLines:
Enabled: false
Layout/TrailingWhitespace:
Enabled: false
Lint/UselessAssignment:
Enabled: false
Naming/FileName:
Enabled: false
Rails/OutputSafety:
Enabled: false
Style/FrozenStringLiteralComment:
Enabled: false
13 changes: 13 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Documentation on http://eslint.org/docs/rules/

module.exports = {
'env': {
'browser': true,
'node': true,
'jquery': true
},
'rules': {
'no-unused-expressions': ['error', { 'allowShortCircuit': true }],
'max-len': ['error', { 'code': 113 }]
},
}
18 changes: 18 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# See https://git-scm.com/docs/gitattributes for more about git attribute files.

# Mark the database schema as having been generated.
db/schema.rb linguist-generated

# Mark the yarn lockfile as having been generated.
yarn.lock linguist-generated

# Mark any vendored files as having been vendored.
vendor/* linguist-vendored
*.gemspec diff=ruby
*.rake diff=ruby
*.rb diff=ruby
*.js diff=javascript

db/schema.rb merge=ours diff=ruby
yarn.lock merge=ours
Gemfile.lock merge=ours linguist-generated
5 changes: 5 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# These are supported funding model platforms

github: [pftg]
patreon: pftg
custom: ['https://www.jetthoughts.com', 'https://jtway.co']
21 changes: 21 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
schedule:
interval: weekly
time: "10:00"
open-pull-requests-limit: 3
versioning-strategy: lockfile-only
allow:
- dependency-type: all
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
time: "10:00"
open-pull-requests-limit: 3
versioning-strategy: lockfile-only
allow:
- dependency-type: all
Loading

0 comments on commit 2f3cbbe

Please sign in to comment.