diff --git a/Jenkinsfile b/Jenkinsfile index 0e9b26d..ba3de93 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -96,9 +96,9 @@ pipeline { PY_PROJECT_VERSION = "__NOTSET__" PY_PROJECT_VERSION_STRIPPED = "__NOTSET__" } - + stages { - + stage("Prepare") { steps { script { @@ -124,7 +124,7 @@ pipeline { echo("_PROJECT_NAME: . . . . . . . . . $_PROJECT_NAME") echo("_MaintainerEmail:. . . . . . . . $_MaintainerEmail") echo("_MaintainerName:. . . . . . . . $_MaintainerName") - + sh("virtualenv --pip=embed --setuptools=embed --wheel=embed --no-periodic-update --activators bash,python BUILD_ENV") sh("virtualenv --pip=embed --setuptools=embed --wheel=embed --no-periodic-update --activators bash,python TEST_ENV") sh("virtualenv --pip=embed --setuptools=embed --wheel=embed --no-periodic-update --activators bash,python TOOLS_ENV") @@ -132,11 +132,20 @@ pipeline { sh(". ~/BUILD_ENV/bin/activate && pip install --upgrade setuptools build pip copier jinja2-slug toml") sh(". ~/TOOLS_ENV/bin/activate && pip install simple_rest_client requests") - sh(". ~/TOOLS_ENV/bin/activate && pip install git+https://chacha.ddns.net/gitea/chacha/pygitversionhelper.git@master") - + + script { + if(_PROJECT_NAME!="pygitversionhelper") { + sh(". ~/TOOLS_ENV/bin/activate && pip install git+https://chacha.ddns.net/gitea/chacha/pygitversionhelper.git@master") + } + else + { + //TODO: need to install pygitversionhelper deps from a better way... + sh(". ~/TOOLS_ENV/bin/activate && pip install packaging") + } + } sh("git config --global user.email $_MaintainerEmail") sh("git config --global user.name $_MaintainerName") - + } } @@ -157,13 +166,18 @@ pipeline { if(_GIT_BRANCH=="master") { if(sh(returnStdout: true, script: "git tag --points-at HEAD").trim().isEmpty()) { + BUMPED_VERSION = sh(script: """#!/bin/sh - |. ~/TOOLS_ENV/bin/activate |exec python - << '__EOWRAPPER__' | - |from pygitversionhelper import gitversionhelper |import re | + |try: + | from pygitversionhelper import gitversionhelper + |except ImportError: + | from src.pygitversionhelper import gitversionhelper + | |lastcommit=gitversionhelper.commit.getLast(same_branch=True) |msg=gitversionhelper.commit.getMessage(lastcommit) | @@ -173,6 +187,7 @@ pipeline { |__EOWRAPPER__ """.stripMargin(), returnStdout: true).trim() + if(BUMPED_VERSION.isEmpty()) { echo "master push/merge must have an explicit tag release number, stopping pipeline" currentBuild.getRawBuild().getExecutor().doStop() @@ -190,7 +205,10 @@ pipeline { |. ~/TOOLS_ENV/bin/activate |exec python - << '__EOWRAPPER__' | - |from pygitversionhelper import gitversionhelper + |try: + | from pygitversionhelper import gitversionhelper + |except ImportError: + | from src.pygitversionhelper import gitversionhelper | |print(gitversionhelper.tag.getLastTag(same_branch=True),end ="") | @@ -204,7 +222,10 @@ pipeline { |. ~/TOOLS_ENV/bin/activate |exec python - << '__EOWRAPPER__' | - |from pygitversionhelper import gitversionhelper + |try: + | from pygitversionhelper import gitversionhelper + |except ImportError: + | from src.pygitversionhelper import gitversionhelper | |print(gitversionhelper.version.getCurrentVersion(formated_output=True,version_std="PEP440",bump_type="dev",bump_dev_strategy="post"),end ="") | @@ -447,7 +468,11 @@ pipeline { | |from simple_rest_client.api import API |from simple_rest_client.resource import Resource - |from pygitversionhelper import gitversionhelper + | + |try: + | from pygitversionhelper import gitversionhelper + |except ImportError: + | from src.pygitversionhelper import gitversionhelper | |from urllib.parse import urljoin | diff --git a/README.md b/README.md index 65cb993..2b71a5b 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ Checkout [Latest Documentation](https://chacha.ddns.net/mkdocs-web/chacha/pygitv - restrict to same branch - both SemVer and PEP440 support - custom output format - - configurable default bump type major, minor, patch or dev - - configurable default bump type: post, pre-patch, pre-minor, pre-major + - configurable default bump type: major, minor, patch or dev + - configurable default bump strategy: post, pre-patch, pre-minor, pre-major - ignore non-version tag - force version format diff --git a/pyproject.toml b/pyproject.toml index 5747932..eaef86a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ build-backend = "setuptools.build_meta" [tool.setuptools_scm] version_scheme= "post-release" -tag_regex="^(?:v)?(?P\\d+\\.\\d+\\.\\d+)([\\.\\-\\+])?(?:.*)?" +# tag_regex="^(?:v)?(?P\\d+\\.\\d+\\.\\d+)([\\.\\-\\+])?(?:.*)?" [project] name = "pygitversionhelper" diff --git a/test/test_gitversionhelper.py b/test/test_gitversionhelper.py index ed0af02..7ae1c57 100644 --- a/test/test_gitversionhelper.py +++ b/test/test_gitversionhelper.py @@ -97,6 +97,7 @@ class Test_gitversionhelper(unittest.TestCase): self._test_version_readback_simple("1.1.1") def test_nominal__version__auto_9(self): self._test_version_readback_simple("1.2.1") + def test_nominal__version__auto_PEP440_post(self): self._test_version_readback_simple("1.2.1.post1") def test_nominal__version__auto_PEP440_pre(self):