A customized GitHub Action to automate semantic versioning and changelog generation for Python projects using semantic-release and gitmoji.
- Automated semantic versioning based on commit messages (supports gitmoji).
- Generates and updates changelogs using custom Handlebars templates.
- Supports both standard and prerelease workflows.
- Customizable for cloud function modules.
Add this action to your workflow:
- name: Run Custom Semantic Release
uses: ./ # or use your repository path
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Name | Description | Required | Default |
---|---|---|---|
github_token | GitHub token for authentication | Yes | |
release_branch | Branch to perform the release from | No | master |
Name | Description |
---|---|
release_version | The version of the release created |
- The action copies .releaserc.js, .prerelease-releaserc.js, package.json, and Handlebars templates to the workspace.
- Uses semantic-release-gitmoji for commit parsing.
- Custom changelog templates are in the templates/ directory.
- Node.js 20 is required.
- Installs all dependencies at runtime.
- See action.yml for the full workflow.
- The image use to run the workflow must have installed Python with the dependencies
build twine bump2version
before execute the semantic release action. - The Python project needs to have a
.bumpversion.cfg
file configured with the specification of the project, see an example in here .