Story #4440
closedImprove the CI/CD pipeline for pulp_python
0%
Description
As a pulp developer, I would like for pulp_python to have a better CI/CD pipeline, so that we can release pulp_python more often.
Currently the release process is:
1. update documentation with release notes
2. Create a PR with release notes and version bump
3. Create a new tag in pulp_python which triggers the travis PyPI deployment job
A simpler workflow would be to have this all be done without needing to create a new commit.
There are projects that allow us to auto-increment the version number [0] or detect the version in tag[1] and use that to generate our released version.
The optimal solution would be a combination of both:
Updating the travis deployment to always use the tagged version to release. And always bump the version in source control to be [released_version]+1 (so when installing from source the version in master is always > version in release)
We can add an post_deploy action [2] to our travis deployment [3] in order to do this version bump.
Instead of having release notes in docs, we can instead keep release note in github release [4], and update our docs to point to that page for releases. This way no new doc commit need to be done for each release.
Bonus Points:
For maximum CD points, we can have a .dev release for every new commit. To ensure that PyPI is always up to date.
[0] https://github.com/warner/python-versioneer
[1] https://pypi.org/project/bumpversion/
[2] https://docs.travis-ci.com/user/job-lifecycle/#the-job-lifecycle
[3] https://github.com/pulp/pulp_python/blob/master/.travis.yml#L32
[4] https://github.com/pulp/pulp_python/releases