diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b62d5d27c13ed852078794d8ca4a62bd91b13277..b46f58e0b1d33b913ecb22239d3a4571ba4fe942 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,6 +33,11 @@ stages: build: stage: build script: + - mkdir -p latest + - "(curl -sS --header 'PRIVATE-TOKEN: ${CI_JOB_TOKEN}' https://${CI_SERVER_HOST}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/-/jobs/artifacts/${CI_COMMIT_BRANCH}/download?job=build | bsdtar -xf - -C latest) || true" + - test -d latest/dist && export LATEST_UTIL_VERSION $(cd latest/dist; ls *.whl | sed -r 's/.*\+([a-z0-9.]+)-.*/\1/g') + - test -d latest/dist && export LATEST_API_VERSION $(cd latest/dist; ls *.whl | sed -r 's/netdb_client-([0-9]+\.[0-9]+\.[0-9]+).*/\1/g') + - test -d latest/dist && export POST_NUM $(cd latest/dist; ls *.whl | sed -r 's/.*\.post([0-9]+).*/\1/g') - python3 -m build - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --verbose --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi --skip-existing dist/* artifacts: diff --git a/setup.py b/setup.py index f1ec6414765aef19ea7efabb7daea179f7e02a0d..b1993c0112effe198aa9ec537a2d9ffdc30bbf18 100644 --- a/setup.py +++ b/setup.py @@ -12,6 +12,10 @@ for v in vers: if largest_ver is None or largest_ver < sem_v: largest_ver = sem_v +latest_previous_util_version = os.environ.get('LATEST_UTIL_VERSION', None) +latest_previous_api_version = os.environ.get('LATEST_API_VERSION', None) +post_version = os.environ.get('POST_NUM', None) + def get_gen_version(): ver = subprocess.run(["pip freeze | grep net_api_generator"], shell=True, text=True, check=True, capture_output=True).stdout return ver.split('@')[-1][:12] @@ -31,9 +35,17 @@ class APIGenBuild(build_py): subprocess.run(['net-api-generator', 'python', f'--output-dir={target_dir}'], check=True, env=environ) build_py.run(self) +util_version = f'{os.environ.get("CI_COMMIT_SHORT_SHA", "HEAD")}.{get_gen_version()}' + +if util_version != latest_previous_util_version && str(largest_ver) == latest_previous_api_version: + if post_version is None: + post_version = 1 + else: + post_version = int(post_version) + 1 + setup( name='netdb_client', - version=f'{str(largest_ver)}{".dev1" if os.environ.get("CI_COMMIT_BRANCH", "local") == "devel" else ""}+{os.environ.get("CI_COMMIT_SHORT_SHA", "HEAD")}.{get_gen_version()}', + version=f'{str(largest_ver)}{".post" + post_version if post_version is not None elese ""}{".dev1" if os.environ.get("CI_COMMIT_BRANCH", "local") == "devel" else ""}+{util_version}', author='NETVS-Team <netvs@scc.kit.edu>', description='This is a meta package to install the automatically generated NET-API definitions for the currently supported API versions.', url='https://git.scc.kit.edu/scc-net/net-suite/netdb-client-lib',