-
Notifications
You must be signed in to change notification settings - Fork 0
/
lefthook.yml
104 lines (102 loc) · 3.59 KB
/
lefthook.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# EXAMPLE USAGE
# Refer for explanation to following link:
# https://github.com/evilmartians/lefthook/blob/master/docs/full_guide.md
#
pre-push:
pre-command: git stash
commands:
test-next:
tags: backend
run: CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` bin/setup-next &&
CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` HEADLESS=true CUPRITE=true APP_HOST='127.0.0.1' next rails test
packages-audit:
tags: frontend security
run: yarn audit
gems-audit:
tags: backend security
run: bundle audit update && bundle audit check
javascript-audit:
tags: frontend security
run: yarn audit
importmaps-audit:
tags: frontend security
run: bin/importmap audit
rubocop:
tags: backend style
files: git diff --name-only master
glob: '*.rb'
run: bundle exec rubocop --force-exclusion -A {files}
brakeman:
tags: backend security
run: bundle exec brakeman --no-pager
rails-tests:
tags: backend tests
run: CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` bin/setup &&
CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` bin/rails test:prepare --trace &&
CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` CUPRITE=true bin/rails test:system
pre-commit:
parallel: true
commands:
js:
glob: '*.{js,ts}'
run: yarn prettier --write {staged_files} && git add {staged_files}
rubocop:
tags: backend style
glob: '*.rb'
exclude: 'application.rb|routes.rb'
run: bundle exec rubocop --force-exclusion {all_files}
erb-lint:
tags: frontend style
files: git diff --name-only master
glob: '*.erb'
run: bundle exec erblint --lint-all {staged_files}
rails-tests:
tags: backend tests
run: CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` bin/setup &&
CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` bin/rails test:prepare --trace &&
CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` CUPRITE=true bin/rails test
fixer:
parallel: true
commands:
ruby-fixer:
run: bundle exec rubocop --force-exclusion -A {all_files}
js-fixer:
glob: 'app/javascript/**.{js,ts,jsx,tsx}'
run: yarn prettier --write {all_files}
ruby-prettier:
glob: 'app/**/*.rb'
run: bundle exec rbprettier --write {files}
erblint:
run: bundle exec erblint --autocorrect --lint-all {all_files}
brakeman:
# the pager was causing the tests to fail in parallel
run: bundle exec brakeman --no-pager
packages-audit:
tags: frontend security
run: yarn audit
gems-audit:
tags: backend security
run: bundle audit update && bundle audit check
next-test:
tags: backend
run: CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` bin/setup-next &&
CI=true RAILS_ENV=test RAILS_MASTER_KEY=`cat config/credentials/test.key` HEADLESS=true CUPRITE=true APP_HOST='127.0.0.1' next rails test:all
i18n-tasks:
run: bundle exec i18n-tasks health en missing unused
javascript-audit:
tags: frontend security
run: yarn upgrade
importmaps-audit:
tags: frontend security
run: bin/importmap outdated
# scripts:
# "hello.js":
# runner: node
# "any.go":
# runner: go run
# "any.py":
# runner: python
# "any.rb":
# runner: ruby
# "any.sh":
# runner: bash