mirror of
https://github.com/discourse/discourse.git
synced 2026-08-04 10:39:43 +08:00
We've been using basic type-checking via JSDoc for some time. This commit allows us to author proper `.ts`/`.gts` files, and use the full typescript syntax. Initially, only d-button and a single chat file are migrated, as proof of functionality. In future, we may migrate more files, and consider making our tsconfig more strict.
189 lines
5.4 KiB
YAML
Vendored
189 lines
5.4 KiB
YAML
Vendored
output:
|
|
- summary
|
|
- empty_summary
|
|
- failure
|
|
- execution
|
|
- execution_out
|
|
- execution_info
|
|
- skips
|
|
|
|
glob_matcher: doublestar
|
|
|
|
pre-commit:
|
|
parallel: true
|
|
skip:
|
|
- merge
|
|
- rebase
|
|
commands:
|
|
rubocop:
|
|
exclude: &ruby_exclude
|
|
- "bin/notify_file_change"
|
|
- "bin/docker/**/*"
|
|
glob: &ruby_glob
|
|
- "**/*.{rb,rake,thor}"
|
|
- "bin/**/*"
|
|
- "Gemfile"
|
|
run: bundle exec rubocop --force-exclusion {staged_files}
|
|
syntax_tree:
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec stree check Gemfile {staged_files}
|
|
prettier:
|
|
glob: &prettier_glob
|
|
- "app/assets/stylesheets/**/*.{css,scss}"
|
|
- "frontend/**/*.{js,gjs,ts,gts,mts,cts,scss,css,cjs,mjs}"
|
|
- "plugins/**/*.{js,gjs,ts,gts,mts,cts,scss,css,cjs,mjs}"
|
|
- "themes/**/*.{js,gjs,ts,gts,mts,cts,scss,css,cjs,mjs}"
|
|
run: pnpm pprettier --list-different {staged_files}
|
|
eslint:
|
|
glob: &eslint_glob
|
|
- "frontend/**/*.{js,gjs,ts,gts,mts,cts}"
|
|
- "plugins/**/*.{js,gjs,ts,gts,mts,cts}"
|
|
- "themes/**/*.{js,gjs,ts,gts,mts,cts}"
|
|
run: pnpm eslint --max-warnings 0 {staged_files}
|
|
yaml-syntax:
|
|
glob: &yaml_glob "**/*.{yaml,yml}"
|
|
# database.yml is an erb file not a yaml file
|
|
exclude: &yaml_exclude "config/database.yml"
|
|
run: bundle exec yaml-lint {staged_files}
|
|
i18n-lint:
|
|
glob: &i18n_glob "**/{client,server}.en.yml"
|
|
run: bundle exec ruby script/i18n_lint.rb {staged_files}
|
|
stylelint:
|
|
glob: &stylelint_glob
|
|
- "app/assets/stylesheets/**/*.scss"
|
|
- "plugins/**/assets/stylesheets/**/*.scss"
|
|
- "themes/**/*.scss"
|
|
run: pnpm stylelint {staged_files}
|
|
|
|
fix-staged:
|
|
parallel: false
|
|
commands:
|
|
prettier:
|
|
glob: *prettier_glob
|
|
run: pnpm pprettier --write {staged_files}
|
|
eslint:
|
|
glob: *eslint_glob
|
|
run: pnpm eslint --fix {staged_files}
|
|
stylelint:
|
|
glob: *stylelint_glob
|
|
run: pnpm stylelint --fix {staged_files}
|
|
rubocop:
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec rubocop --force-exclusion -A {staged_files}
|
|
syntax_tree:
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec stree write Gemfile {staged_files}
|
|
|
|
# Working-tree counterparts of pre-commit/fix-staged. Deliberately NOT named
|
|
# pre-commit/pre-push so lefthook does not hide unstaged changes: the linters
|
|
# read the files exactly as they are on disk, not their staged blobs. bin/lint
|
|
# routes explicit-path, --recent, --unstaged and --wip runs here. The {files}
|
|
# template is overridden by the --file flag bin/lint passes; the files command
|
|
# is only the fallback when no --file is given and lists tracked plus untracked
|
|
# (but not ignored) paths.
|
|
lint-files:
|
|
parallel: true
|
|
commands:
|
|
rubocop:
|
|
files: &working_tree_files git ls-files --cached --others --exclude-standard
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec rubocop --force-exclusion {files}
|
|
syntax_tree:
|
|
files: *working_tree_files
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec stree check Gemfile {files}
|
|
prettier:
|
|
files: *working_tree_files
|
|
glob: *prettier_glob
|
|
run: pnpm pprettier --list-different {files}
|
|
eslint:
|
|
files: *working_tree_files
|
|
glob: *eslint_glob
|
|
run: pnpm eslint --max-warnings 0 {files}
|
|
yaml-syntax:
|
|
files: *working_tree_files
|
|
glob: *yaml_glob
|
|
exclude: *yaml_exclude
|
|
run: bundle exec yaml-lint {files}
|
|
i18n-lint:
|
|
files: *working_tree_files
|
|
glob: *i18n_glob
|
|
run: bundle exec ruby script/i18n_lint.rb {files}
|
|
stylelint:
|
|
files: *working_tree_files
|
|
glob: *stylelint_glob
|
|
run: pnpm stylelint {files}
|
|
|
|
fix-files:
|
|
parallel: false
|
|
commands:
|
|
prettier:
|
|
files: *working_tree_files
|
|
glob: *prettier_glob
|
|
run: pnpm pprettier --write {files}
|
|
eslint:
|
|
files: *working_tree_files
|
|
glob: *eslint_glob
|
|
run: pnpm eslint --fix {files}
|
|
stylelint:
|
|
files: *working_tree_files
|
|
glob: *stylelint_glob
|
|
run: pnpm stylelint --fix {files}
|
|
rubocop:
|
|
files: *working_tree_files
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec rubocop --force-exclusion -A {files}
|
|
syntax_tree:
|
|
files: *working_tree_files
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec stree write Gemfile {files}
|
|
|
|
fix-all:
|
|
parallel: false
|
|
commands:
|
|
prettier:
|
|
run: pnpm lint:prettier:fix
|
|
eslint:
|
|
run: pnpm lint:js:fix
|
|
stylelint:
|
|
run: pnpm lint:css:fix
|
|
rubocop:
|
|
run: bundle exec rubocop --force-exclusion -A
|
|
syntax_tree:
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec stree write Gemfile {all_files}
|
|
|
|
lints:
|
|
parallel: true
|
|
commands:
|
|
rubocop:
|
|
glob: *ruby_glob
|
|
run: bundle exec rubocop
|
|
syntax_tree:
|
|
exclude: *ruby_exclude
|
|
glob: *ruby_glob
|
|
run: bundle exec stree check Gemfile {all_files}
|
|
prettier:
|
|
run: pnpm lint:prettier
|
|
eslint:
|
|
run: pnpm lint:js
|
|
stylelint:
|
|
run: pnpm lint:css
|
|
yaml-syntax:
|
|
glob: *yaml_glob
|
|
# database.yml is an erb file not a yaml file
|
|
exclude: *yaml_exclude
|
|
run: bundle exec yaml-lint {all_files}
|
|
i18n-lint:
|
|
glob: *i18n_glob
|
|
run: bundle exec ruby script/i18n_lint.rb {all_files}
|
|
glint:
|
|
run: pnpm lint:types
|