Package for handling validation of commits, nx tags, branch and code formatting
npm install @house-of-angular/commit-lint --save-dev
Print version based on package.json and git commit hash.
Check if branch is correctly named
Check if all nx tags are valid.
Check if commit messages are correctly formatted.
Check with prettier if files are correctly formatted.
Build affected apps.
Options:
--base <base>
- base commit or branch for finding affected apps
--buildFlags <buildFlags>
- build flags eg. --aot --build-optimizer=false
(default: "--aot --build-optimizer=false")
--head <head>
- head commit or branch for finding affected apps
--nodeFlags <nodeFlags>
- nodejs flags eg. --max-old-space-size=6144
(default: "")
--npmCommands <npmFlags>
- additional npm commands to run before build separated with &&
eg. build:ci:prepare && build:ci:notify
(default: "")
Create symlinks in node_modules
for _styles.scss
and *.theme.scss
.
Check if merge request isn't too large.
Options:
--base <base>
- base commit or branch for diff
--head <head>
- head commit or branch for diff
Create houseofangular-commit-lint.json5
file in repository with the following content:
{
branch: {
// types of branches
types: ['feature', 'bugfix', 'hotfix', 'release', 'refactor'],
// RegExp that overrides "types" (types are ignored)
pattern: '(.*)',
},
change: {
// max number of added lines in change request, default: -1
maxAdditions: -1,
// max number of deleted lines in change request, default: -1
maxDeletions: -1,
// max number of edited files in change request, default: -1
maxFiles: -1,
},
// all commitlint rules are supported
// https://github.com/conventional-changelog/commitlint/blob/master/docs/reference-rules.md
commitlint: {
'body-leading-blank': [1, 'always'],
'footer-leading-blank': [1, 'always'],
'header-max-length': [2, 'always', 72],
'body-max-line-length': [2, 'always', 72],
'footer-max-line-length': [2, 'always', 72],
'scope-case': [2, 'always', 'lower-case'],
'subject-case': [2, 'never', ['sentence-case', 'start-case', 'pascal-case', 'upper-case']],
'subject-empty': [2, 'never'],
'subject-full-stop': [2, 'never', '.'],
'type-case': [2, 'always', 'lower-case'],
'type-empty': [2, 'never'],
'type-enum': [2, 'always', ['build', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'release', 'style', 'test']],
'scope-enum': [2, 'always', ['test', 'report', 'document']],
},
prettier: {
// extensions to check with prettier
extensionsToCheck: ['.json', '.ts', '.js', '.html', '.css', '.scss'],
},
nxTagsValidator: {
// ignore default tags
ignore: ['type:application', 'type:util', 'type:ui', 'type:data-access', 'type:resource', 'type:feature', 'scope:shared'],
},
}