Project

Profile

Help

Story #4440

closed

Improve the CI/CD pipeline for pulp_python

Added by bizhang about 5 years ago. Updated about 5 years ago.

Status:
CLOSED - WONTFIX
Priority:
Normal
Assignee:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
Target Release - Python:
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:

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

Also available in: Atom PDF