Release
The repository uses automated release process that consists of combination of Github Actions and Konflux. The Github Actions take care of the release process for the Python package and the Konflux takes care of the release process for the container image.
Github Release
The Mobster uses release-please CLI tool to automate the release process and
generate the release notes. Unfortunately we can't use the release-please
github action due to a security concern in the konflux-ci
organization.
Because of that the release process is done manually using the
release-please
CLI tool. The tool is used to generate the release notes and
bump the version in the pyproject.toml
file.
Release steps:
- Pull the latest version from the repository.
git pull upstream main --tags
- Install the release-please CLI tool if not already installed
- Export the
GITHUB_TOKEN
environment variable with a personal access token that hasrepo
scope. This token is used to authenticate with GitHub API.bash export GITHUB_TOKEN=<your_personal_access_token>
- Run
make open-release-pr
to generate the release pull request. - For a dry-run, you can use
make open-release-pr-dry-run
to see what changes would be made without actually creating the pull request. - Review the generated pull request and merge it into the main branch.
- After the pull request is merged, run the following commands to create a new Github
release and tag the commit:
make github-release
(ormake github-release-dry-run
for a dry-run). - This command will create a new tag in the format
vX.Y.Z
- It will also push the tag to the remote repository
- It creates a new Github release with auto-generated release notes
- It triggers a PyPi release
Release to PyPI
A github action is used to release the Python package to PyPI. The action is
triggered on every version tag (vX.Y.Z
) being pushed to the repository.
The tag event is generated from the previous release steps.
After the tag is pushed, the Github action will be triggered and it will automatically build the package and upload it to PyPI.
Release to registry
The Konflux is used to build and release the container image to the registry. The Konflux is configured to build image for every open PR and also for every merged PR.
The intermediate images are pushed to internal repository: - https://quay.io/repository/redhat-user-workloads/the-collective-tenant/mobster-f7a65
The final externally available image is pushed to user facing repository: - https://quay.io/konflux-ci/mobster