48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
|
# standard imports
|
||
|
import logging
|
||
|
import time
|
||
|
|
||
|
# third-party imports
|
||
|
import semver
|
||
|
|
||
|
# local imports
|
||
|
from cic_notify.error import PleaseCommitFirstError
|
||
|
|
||
|
logg = logging.getLogger()
|
||
|
|
||
|
version = (0, 4, 0, 'alpha.2')
|
||
|
|
||
|
version_object = semver.VersionInfo(
|
||
|
major=version[0],
|
||
|
minor=version[1],
|
||
|
patch=version[2],
|
||
|
prerelease=version[3],
|
||
|
)
|
||
|
|
||
|
version_string = str(version_object)
|
||
|
|
||
|
|
||
|
def git_hash():
|
||
|
import subprocess
|
||
|
git_diff = subprocess.run(['git', 'diff'], capture_output=True)
|
||
|
if len(git_diff.stdout) > 0:
|
||
|
raise PleaseCommitFirstError()
|
||
|
|
||
|
git_hash = subprocess.run(['git', 'rev-parse', 'HEAD'], capture_output=True)
|
||
|
git_hash_brief = git_hash.stdout.decode('utf-8')[:8]
|
||
|
return git_hash_brief
|
||
|
|
||
|
|
||
|
try:
|
||
|
version_git = git_hash()
|
||
|
version_string += '.build.{}'.format(version_git)
|
||
|
except FileNotFoundError:
|
||
|
time_string_pair = str(time.time()).split('.')
|
||
|
version_string += '+build.{}{:<09d}'.format(
|
||
|
time_string_pair[0],
|
||
|
int(time_string_pair[1]),
|
||
|
)
|
||
|
logg.info(f'Final version string will be {version_string}')
|
||
|
|
||
|
__version_string__ = version_string
|