@xtreamsrl/githooks
v1.1.0
Published
A Nx generator to help with pre-commit hooks setup.
Downloads
4
Readme
@xtreamsrl/githooks
A Nx generator which:
- install the
husky
andcommitlint
packages - configure the
husky
package to runcommitlint
oncommit-msg
hook
The commitlint
configuration can be customized on installation, choosing between the @commitlint/config-conventional
and @commitlint/config-angular
presets.
The following commitlint
rules are configured:
type-enum
: the commit type must be one of the following:build
,ci
,chore
,docs
,feat
,fix
,perf
,refactor
,revert
,style
,test
;scope-enum
: the commit scope must be one of the following scopesall
,release
,scripts
or one of the apps or libs names, eventually prefixed withlib
orapp
;scope-empty
: the commit scope must never be empty.
Installation
npm install @xtreamsrl/githooks
Usage
Generator
Run the nx generator and follow the instructions:
nx generate @xtreamsrl/githooks
Update commitlint
configuration
The commitlint configuration is generated once when the nx generator is executed. So it will includes in the admitted scopes the apps and libs names at the moment of the installation.
When a new app or lib is created, the commitlint configuration must be updated to include the new scope.
To do that, update manually the .commitlintrc.json
file, adding the new scope to the scope-enum
rule.
Build
Run nx build githooks
to build the library.
Run unit tests
Run nx test githooks
to execute the unit tests via Jest.
Linting
Run nx lint githooks
to execute the lint via ESLint.
Versioning
Export the GH_TOKEN
environment variable with your GitHub token with at least the repo
scope:
export GH_TOKEN=<YOUR_PERSONAL_GH_TOKEN>
Then run the following command:
lerna version
The GH_TOKEN
is needed to push the version commit and tag to the remote repository and to create the release on GitHub.
For general information about the versioning process, please refer to the root Readme Versioning section.
Publishing
Update your local .npmrc
file to include the following lines:
@xtreamsrl:registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
The ${NPM_TOKEN}
placeholder is a npm personal access token publish permissions on the @xtreamsrl
organization.
It can be treated as placeholder to replace with the actual token value, or you can set it as an environment variable:
export NPM_TOKEN=<YOUR_PERSONAL_NPM_TOKEN>
Then run the following command:
npm run lerna-publish