commitizen-tools / commitizen-action

Commitizen github action to bump and create changelog
MIT License
73 stars 32 forks source link

How to use pre_bump_hook scripts with this action #78

Open dirceu-cit opened 9 months ago

dirceu-cit commented 9 months ago

Hi all,

Question here:

I am interested in using this pre-bump-hooks built-in commitizen feature to update my repository documentation before create the tag and push the commit, like it is said in the site:

Useful when you need to generate documentation based on the new version. During execution of the script, some environment variables are available

It works pretty well in a local machine using the installed commitizen version (pip install -U commitizen) but, if I understood correctly, this action is a Docker Action, which means that it runs inside a pre-built docker image which does not contain the scripts that is referenced in my .cz.yaml configuration file, unless if I was able to mount a volume in this image containing my script, for instance (not sure if it is a regular approach in github actions - volume mount)

Is there any way to do it? Are you have some related issue in the roadmap?

Thanks in advance

woile commented 9 months ago

The Docker image has your code mounted automatically. Otherwise it wouldn't be able to find the pyproject.toml or the .cz.toml depending on which one you are using. Now, the potential problem I see with the bump hooks is that if your dependencies require something that is not in the docker image... it becomes quite complicated to run the hook. If it's something like mkdocs, you can add it to extra_requirements and it should work.

Alternatively, you can split the version updates on the files, and the commit creation:

- run: cz bump --files-only
- run: ./scripts/docs
- run: git commit -am "bump: new version $(cz version -p)"