1.1.0 • Published 5 months ago

@xtreamsrl/githooks v1.1.0

Weekly downloads
-
License
-
Repository
github
Last release
5 months ago

@xtreamsrl/githooks

A Nx generator which:

  • install the husky and commitlint packages
  • configure the husky package to run commitlint on commit-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 scopes all, release, scripts or one of the apps or libs names, eventually prefixed with lib or app;
  • 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

Who we are

1.1.0

5 months ago

1.0.1

5 months ago

1.0.0

5 months ago

0.2.4

5 months ago

0.2.3

6 months ago

0.2.2

8 months ago