PyBump icon indicating copy to clipboard operation
PyBump copied to clipboard

Bump version in Helm Chart.yaml and setup.py files

===================== Python Version Bumper

.. image:: https://github.com/arielevs/pybump/workflows/Python%20package/badge.svg :alt: Build :target: https://pypi.org/project/pybump/

.. image:: https://codecov.io/gh/ArieLevs/PyBump/branch/master/graph/badge.svg?token=P3AZKGX5IR :alt: Code Coverage :target: https://codecov.io/gh/ArieLevs/PyBump

.. image:: https://img.shields.io/pypi/v/pybump.svg :alt: Version :target: https://pypi.org/project/pybump/

.. image:: https://img.shields.io/pypi/l/pybump.svg?colorB=blue :alt: License :target: https://pypi.org/project/pybump/

.. image:: https://img.shields.io/pypi/pyversions/pybump.svg :alt: Python Version :target: https://pypi.org/project/pybump/

| Simple python code to bump kubernetes package manager Helm charts.yaml, VERSION and setup.py files versions. | Versions must match semver 2.0.0: https://github.com/semver/semver/blob/master/semver.md | Version is allowed a lower case 'v' character for example: v1.5.4-beta2

Install

pip install pybump

Usage

| bump version: | pybump bump [-h] --file PATH_TO_CHART.YAML --level {major,minor,patch} [--quiet] |

| set explicit version or set auto release+metadata: | pybump set --file PATH_TO_CHART.YAML --set-version X.Y.Z [--quiet] | | the auto flag is mainly intended for pull request CIs, by using: | pybump set --file PATH_TO_CHART.YAML --auto [--quiet] | pybump will add git commit hash as release info to version

  • NOTE - This can be dangerous as the auto flag might detect a git repo you were not intended to bump, make sure the bumped file is really a child in the git repo you intended to bump.

| get current version: | pybump get --file PATH_TO_CHART.YAML |

| update Helm chart appVersion: | in order to bump/get/set the Helm chart appVersion value just add the --app-version flag | pybump bump [-h] --file PATH_TO_CHART.YAML --level {major,minor,patch} [--quiet] [--app-version]

  • note that the --app-version flag is relevant only for Helm chart.yaml files and has not effect on other cases.

Examples

CLI example

.. image:: ./docs/pybump-recording.gif

CI Usage example

Simple jenkins CI (using k8s plugin) that will use the set --file setup.py --auto options

.. code-block:: java

String label = "test-bump-ci-runner"
podTemplate(
        label: label,
        containers: [
                containerTemplate(
                        name: 'pybump',
                        image: "arielev/pybump:1.10.2",
                        ttyEnabled: true,
                        command: 'sleep',
                        args: '1d'
                ),
                containerTemplate(
                        name: 'jnlp',
                        image: 'jenkins/inbound-agent:jdk11',
                        ttyEnabled: true
                )
        ]
) {
    node(label) {
        timeout(time: 10, unit: 'MINUTES') {
            ansiColor('xterm') {
                String version = ""
                container('jnlp') {
                    git credentialsId: "credentials_id_here", url: "https://github.com/arielevs/pybump"
                }
                container('pybump') {
                    version = sh(
                            script: "pybump set --file setup.py --auto",
                            returnStdout: true
                    ).trim()
                }
                println(version)
            }
        }
    }
}

| Case: version: 0.0.1 | pybump bump --file Chart.yaml --level patch will bump version to 0.0.2 |

| Case: version: 0.1.4-alpha+meta.data | pybump bump --file Chart.yaml --level minor will bump version to 0.2.0-alpha+meta.data |

| Case: version: v0.0.3 | pybump bump --file Chart.yaml --level major will bump version to v1.0.0 |

| Case: version: 0.0.1+some-metadata | pybump set --file Chart.yaml --set-version 1.4.0 will set version to 1.4.0+metadata-here |

| Case: version: v7.0.2 | pybump set --file setup.py --auto will set version to v7.0.2-5a51e0e1d9894d3c5d4201619f10be242320cb59 |

| Case: appVersion 2.3.2 | pybump bump --file Chart.yaml --level patch --app-version will bump appVersion to 2.3.3 |

| Case: version: 1.0.13 | pybump get --file Chart.yaml will return 1.0.13 |

| Case: version: 1.0.13+some-metadata | pybump get --file Chart.yaml --release will return some

using a container image

| docker run --rm --volume $(pwd):/tmp -t arielev/pybump set --file /tmp/setup.py --auto |