diff --git a/README.md b/README.md index bcaffe9..2adb4ec 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,36 @@ This action will bump version, tag commit and generate a changelog with conventi - **Optional** `skip-on-empty`: Boolean to specify if you want to skip empty release (no-changelog generated). This case occured when you push `chore` commit with `angular` for example. Default `'false'`. - **Optional** `skip-version-file`: Do not update the version file. Default `'false'`. - **Optional** `skip-commit`: Do create a release commit. Default `'false'`. +- **Optional** `pre-commit`: Path to the pre-commit script file. No hook by default. + +### Pre-Commit hook + +> Function in a specified file will be run right before the git-add-git-commit phase, when the next +> version is already known and a new changelog has been generated. You can run any chores across your +> repository that should be added and commited with the release commit. + +An absolute path to the `.js` script file must be provided when specifying the `pre-commit` hook. File +should contain all its dependencies bundled in itself just like for the webapp. + +Script should: +- be a CommonJS module +- have a single export: `exports.preCommit = (props) => { /* ... */ }` +- not have any return value +- be bundled + +`preCommit` function can be `async`. + +Following props will be passed to the function as a single parameter: + +```typescript +interface Props { + workspace: string; // same as process.env.GITHUB_WORKSPACE + tag: string; // Next tag e.g. v1.12.3 + version: string; // Next version e.g. 1.12.3 +} + +export function preCommit(props: Props): void {} +``` ## Outputs @@ -89,6 +119,16 @@ Use a custom file for versioning version-file: 'my-custom-file.yaml' ``` +Use a pre-commit hook + +```yaml +- name: Conventional Changelog Action + uses: TriPSs/conventional-changelog-action@v3 + with: + github-token: ${{ secrets.github_token }} + pre-commit: ${{ github.workspace }}/some/path/pre-commit.js # requires absolute path +``` + Github releases ```yaml @@ -129,6 +169,9 @@ $ act -j test-yaml -P ubuntu-latest=nektos/act-environments-ubuntu:18.04 -s gith # To run / toml git versioning $ act -j test-toml -P ubuntu-latest=nektos/act-environments-ubuntu:18.04 -s github_token=fake-token + +# To run pre-commit test +$ act -j test-pre-commit -P ubuntu-latest=nektos/act-environments-ubuntu:18.04 -s github_token=fake-token ``` ## [License](./LICENSE)