Release by Changelog
Release a new version of a software based on CHANGELOG.md file.
Detect the latest version in the CHANGELOG.md file and create a new release in the repository.
Release by Changelog rely on Keep a Changelog format and Semantic Versioning, following those two norms is required.
Installation
pip install --upgrade pip
pip install release-by-changelog
Usage
In a Gitlab CI pipeline, you can use the following command to release a new version of your software based on the CHANGELOG.md file.
release-by-changelog
It's recommended to add a rules
section to run this command only on the default
branch.
Here is an example of a .gitlab-ci.yml
file using release-by-changelog
:
release:
stage: deploy
script:
- pip install release-by-changelog
- release-by-changelog
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
release-by-changelog
will read the CHANGELOG.md file and create a new tag based on the
latest version found in the file. The release will be pushed to the repository.
release-by-changelog
rely on the following predefined CI/CD variables to authenticate
with the GitLab API:
-
CI_PROJECT_ID
: Used to identify the project, -
CI_COMMIT_SHA
: Used to identify the reference, -
CI_JOB_TOKEN
: Used to authenticate with the GitLab API. -
CI_SERVER_HOST
: Used to identify the GitLab host.
Local usage
You can also use this command locally to release a new version of your software.
release-by-changelog --token <token> <project> <ref>
- project: Path or id on host. [required]
- ref: Can be a branch, tag, or commit SHA. [required]
The token is required to authenticate with the GitLab API. You can authenticate with the GitLab API in several ways:
Using environment variables
You can also use environment variables to avoid passing the token each time. A token passed as an argument will always take precedence over the environment variable.
export PRIVATE_TOKEN=<token>
release-by-changelog <project> <ref>